Bash skript für SMP gesucht

Moien

Ich hab einige tausend Jobs (immer das gleiche Consolenprogram, nur andere Parameter) zu starten. Alle CPU-bound, single-threaded, mit minimalen IO, zwischen 10s und 4min Rechenzeit. Auf 8 Kern Systemen wäre es natürlich interessant 8 Jobs gleichzeitig zu rechnen.

Nur wie? Wenn ich die Jobs in 8 Listen aufteile und diese gleichzeitig starte wird durch die Laufzeitunterschiede eine Liste immer länger laufen als die anderen. Heute warens 2 Stunden …

Danke

Hallo,

Ich hab einige tausend Jobs (immer das gleiche
Consolenprogram, nur andere Parameter) zu starten. Alle
CPU-bound, single-threaded, mit minimalen IO, zwischen 10s und
4min Rechenzeit. Auf 8 Kern Systemen wäre es natürlich
interessant 8 Jobs gleichzeitig zu rechnen.

Nur wie?

  1. Makefile-Hack: du schreibst (automatisiert natürlich :wink: eine Makefile, die einfach alle Berechnungen durchführt, und schreibst dann

    make -j 8

  2. Shell-Hack mit uptime: Du baust einen Endlosschleife, und startest immer dann neue Prozesse wenn die load average niedriger als ein bestimmter Wert ist. Nachteil: die load wird nicht so häufig aktualisiert

  3. Perl + Parallel::ForkManager

HTH,
Moritz

gelöst, danke
Moien

  1. Makefile-Hack

Das sollte klappen, danke.

cu