Mit GNU Parallel würden Sie Folgendes tun:
parallel script-to-run.sh input/ output/ {} ::: {0..99}
Fügen -P8
Sie hinzu, wenn Sie nicht einen Job pro CPU-Kern ausführen möchten.
Im Gegensatz xargs
dazu wird The Right Thing ausgeführt, auch wenn die Eingabe Leerzeichen 'oder "enthält (dies ist hier jedoch nicht der Fall). Außerdem wird sichergestellt, dass die Ausgabe von verschiedenen Jobs nicht miteinander gemischt wird. Wenn Sie also die Ausgabe verwenden, sind Sie es garantiert, dass Sie von zwei verschiedenen Jobs keine halbe Linie bekommen.
GNU Parallel ist ein allgemeiner Parallelisierer und erleichtert das parallele Ausführen von Jobs auf demselben Computer oder auf mehreren Computern, auf die Sie SSH-Zugriff haben.
Wenn Sie 32 verschiedene Jobs haben, die Sie auf 4 CPUs ausführen möchten, besteht eine einfache Möglichkeit zur Parallelisierung darin, 8 Jobs auf jeder CPU auszuführen:
GNU Parallel erzeugt stattdessen einen neuen Prozess, wenn man fertig ist - die CPUs bleiben aktiv und sparen so Zeit:
Installation
Wenn GNU Parallel nicht für Ihre Distribution gepackt ist, können Sie eine persönliche Installation durchführen, für die kein Root-Zugriff erforderlich ist. Dies kann in 10 Sekunden erfolgen:
$ (wget -O - pi.dk/3 || lynx -source pi.dk/3 || curl pi.dk/3/ || \
fetch -o - http://pi.dk/3 ) > install.sh
$ sha1sum install.sh | grep 67bd7bc7dc20aff99eb8f1266574dadb
12345678 67bd7bc7 dc20aff9 9eb8f126 6574dadb
$ md5sum install.sh | grep b7a15cdbb07fb6e11b0338577bc1780f
b7a15cdb b07fb6e1 1b033857 7bc1780f
$ sha512sum install.sh | grep 186000b62b66969d7506ca4f885e0c80e02a22444
6f25960b d4b90cf6 ba5b76de c1acdf39 f3d24249 72930394 a4164351 93a7668d
21ff9839 6f920be5 186000b6 2b66969d 7506ca4f 885e0c80 e02a2244 40e8a43f
$ bash install.sh
Weitere Installationsoptionen finden Sie unter http://git.savannah.gnu.org/cgit/parallel.git/tree/README
Mehr erfahren
Weitere Beispiele: http://www.gnu.org/software/parallel/man.html
Sehen Sie sich die Intro-Videos an: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
Gehen Sie durch das Tutorial: http://www.gnu.org/software/parallel/parallel_tutorial.html
Melden Sie sich für die E-Mail-Liste an, um Unterstützung zu erhalten: https://lists.gnu.org/mailman/listinfo/parallel