Me gustaría usar la función de GNU paralelo donde puede ejecutar el comando y la lista que se alimenta en paralelo y escupirlo después de que todo esté hecho, sin embargo, no quiero instalar GNU paralelo en todos nuestros servidores.
O tal vez una versión paralela de xargs
?
¿Existe una implementación ksh de lo que hace GNU Parallel? En este caso, no tiene que hacerse en orden como lo hace GNU Parallel, siempre y cuando toda la salida se pueda canalizar o almacenar. También me gustaría evitar el uso de archivos temporales.
ksh
gnu
parallelism
gnu-parallel
Nitrodista
fuente
fuente
Respuestas:
Si desea paralelizar en una máquina con múltiples núcleos, puede usar (GNU)
xargs
, por ejemplo:Significado:
xargs
inicia hasta 16 procesos en paralelo al./crunching
uso de 1 token de stdin para cada proceso.También se puede usar
split
en combinación con xargs.O puede crear un Makefile simple para la ejecución del trabajo y la llamada
make -f mymf -j $CORES
(necesita archivos temporales para esta solución).PD: El manual paralelo de GNU también incluye algunas comparaciones con otras herramientas, incluidos xargs y make , curiosamente escriben:
fuente
xargs
es notoriamente malo en eso cuando se ejecuta en paralelo porque la salida puede mezclarse.Observe
parallel --embed
qué integra GNU Parallel en el mismo script de shell desde el que lo usa.luego edite new_script.
fuente