Je voudrais utiliser la fonctionnalité de GNU parallel où il peut exécuter la commande et la liste qui est alimentée en parallèle et la recracher après tout, cependant, je ne veux pas installer GNU parallel sur tous nos serveurs.
Ou peut-être une version parallèle de xargs
?
Existe-t-il une implémentation ksh de ce que fait GNU Parallel? Dans ce cas, cela ne doit pas être fait dans l'ordre comme le fait GNU Parallel - aussi longtemps que toute la sortie peut être canalisée ou stockée. Je voudrais également éviter d'utiliser des fichiers temporaires.
ksh
gnu
parallelism
gnu-parallel
Nitrodist
la source
la source
Réponses:
Si vous souhaitez paralléliser sur une machine avec plusieurs cœurs, vous pouvez simplement utiliser (GNU)
xargs
, par exemple:Signification:
xargs
démarre jusqu'à 16 processus en parallèle en./crunching
utilisant 1 jeton de stdin pour chaque processus.Vous pouvez également utiliser
split
en combinaison avec xargs.Ou vous pouvez créer un Makefile simple pour l'exécution et l'appel du Job
make -f mymf -j $CORES
(vous avez besoin de fichiers temporaires pour cette solution).PS: Le manuel parallèle GNU comprend également des comparaisons avec d'autres outils, y compris xargs et make , ce qui est intéressant, ils écrivent:
la source
xargs
est notoirement mauvais quand il est exécuté en parallèle car la sortie peut se mélanger.Regardez
parallel --embed
qui incorpore GNU Parallel dans le même script shell que celui que vous utilisez.puis éditez new_script.
la source