Mit GNU Parallel würden Sie tun:
parallel script-to-run.sh input/ output/ {} ::: {0..99}
Fügen Sie -P8
hinzu, wenn Sie nicht möchten, einen Auftrag pro CPU-Kern auszuführen.
Gegenüber xargs
wird es die richtige Sache tun, auch wenn die Eingabe Leerzeichen, ', oder "(nicht der Fall hier, obwohl). Es stellt auch sicher, dass die Ausgabe von verschiedenen Jobs nicht zusammen gemischt werden, also wenn Sie Nutzen Sie die Ausgabe, so dass Sie garantiert keine halbe Zeile aus zwei verschiedenen Jobs bekommen.
GNU Parallel ist ein allgemeiner Parallelizer und ermöglicht die parallele Ausführung von Jobs auf demselben Rechner oder auf mehreren Rechnern, auf die Sie ssh zugreifen können.
Wenn Sie 32 verschiedene Jobs haben Sie auf 4 CPUs ausgeführt werden soll, ein straight forward Weg parallelisieren auf jeder CPU laufen 8 Jobs:
GNU Parallel laicht stattdessen einen neuen Prozess, wenn ein Oberflächen - halten die CPUs aktiv und damit Zeit zu sparen:
Installations
Wenn GNU Parallel nicht für Ihre Distribution verfügbar ist, können Sie eine persönliche Installation durchführen, die keinen Root-Zugriff erfordert. Sie kann, indem Sie diese in 10 Sekunden durchgeführt werden:
(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash
Für andere Installationsoptionen siehe http://git.savannah.gnu.org/cgit/parallel.git/tree/README
Weitere
weitere Beispiele siehe: http://www.gnu.org/software/parallel/man.html
Beobachten Sie die Intro-Videos: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
Spaziergang durch die Tut orial: http://www.gnu.org/software/parallel/parallel_tutorial.html
Zeichen für die E-Mail-Liste nach oben Unterstützung erhalten: https://lists.gnu.org/mailman/listinfo/parallel
Verwenden GNU Parallel – Barmar
Das ist, was ich ursprünglich machen wollte, musste aber xargs greifen, weil ich unter Windows bin. Ich konnte GNU Parallel unter Windows nicht starten. – Olivier
Ruft das Skript sich selbst an oder haben Sie einfach die Namen verwechselt, als Sie hier gefragt haben? –