Verwenden Sie GNU Parallel:
$ parallel -j16 ./task :::
Verwenden Sie Moreutils parallel :
$ parallel -j16 ./task --
Verwenden Sie Make:
$ make -j16
Makefile (nicht sicher, ob Standard oder GNU-Make-spezifisch ist):
.PHONY: $(MAKECMDGOALS) %: ./task $@
Schreibe dein Eigenes:
#!/usr/bin/env bash inputs=( ) nproc=16 njobs=0 for input in "$"; do until (( njobs < nproc )); do wait -n; (( --njobs )) done ./task "$input"& (( ++njobs )) done while (( njobs )); do wait -n; (( --njobs )) done
Parallele Einplanung von Aufgaben unter Linux
344
Jonathan Michael Foonlan Tsang
Ich habe N = 128 (sagen wir) Aufgaben task 0
, task 1
... task N-1
, dass ich vollenden müssen. Jede Aufgabe dauert in unbekannter Zeit und kann in beliebiger Reihenfolge ausgeführt werden. Ich befinde mich auf einer Maschine mit einer großen Anzahl von Kernen, aber ich möchte nur 16 dieser Aufgaben gleichzeitig ausführen. Gibt es ein Dienstprogramm, um dies zu automatisieren?
Ich überlegte
$ for i in ; do nice -n 19 ./task $i & done;
Dies würde jedoch alle Aufgaben gleichzeitig ausführen. Vielmehr möchte ich etwas, das die ersten 16 Aufgaben startet und dann, wenn eine Aufgabe abgeschlossen ist, durch eine neue ersetzt wird.
1 Antwort auf die Frage
3
grawity
GNU Parallel wird heutzutage standardmäßig auf `::: anstelle von - gesetzt. Wissenswertes: GNU Parallel war ursprünglich ein Wrapper um "make": https://www.gnu.org/software/parallel/history.html
Ole Tange vor 5 Jahren
0
@OleTange: Aha, es sieht so aus, als ob ich auf die Manpage von _moreutils_ paralell (die immer noch "-" verwendet) und nicht auf GNU parallel geschaut hat.
grawity vor 5 Jahren
0
Kann eine Liste mit zu bearbeitenden Jobs geändert werden, nachdem eine Warteschlange mit "parallel" gestartet wurde? Oder einige spätere Jobs abzubrechen, ohne die gerade laufenden Jobs abzubrechen?
Jonathan Michael Foonlan Tsang vor 5 Jahren
0
@JonathanMichaelFoonlanTsang https://zenodo.org/record/1146014 Lesen Sie die Abschnitte 7.8 und 7.9.
Ole Tange vor 5 Jahren
0
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem
-
6
Vollbild-Flash langsam in KDE 4