Manuel: Parallel

Möchte man eine Reihe von Befehlen ausführen, die jeweils eine komplexe Berechnung durchführen und nicht voneinander abhängig sind (z.B. das Konvertieren von großen Bildern), lohnt es sich über Parallelisierung nach zu denken. Allerdings sind die zu Grunde liegenden Anwendungen oft nicht parallelisiert (z.B. ImageMagick’s convert). Alle Prozesse parallel zu starten ist meist auch keine gute Idee, da das einer fork-bomb gleich kommen würde.

Ausgehend von einem Bash-Skript, welches die Befehle enthält, kann man jedoch das Tool parallel nutzten welches immer eine definierte Menge von Jobs parallel laufen lässt:

manuel@lola:/tmp$ parallel << EOF
perl -e 'sub f { my $i = shift; return 1 if $i < 1; return f($i-1) + f($i-2); }; f(100)'
perl -e 'sub f { my $i = shift; return 1 if $i < 1; return f($i-1) + f($i-2); }; f(100)'
EOF

Neben der Standard-Eingabe liest das Programm aber auch Dateien. Ziel für die Weiter-Entwicklung ist es ein dropin-replacement für xargs zu schaffen. Auf jeden Fall ein klasse Tool, welches einem eine Menge Arbeit oder Zeit sparen kann!

1 Comment Posted in Bash, Linux, Perl, Sysadmin, Uncategorized
Tagged

One Comment

Leave a Reply

Using Gravatars in the comments - get your own and be recognized!

XHTML: These are some of the tags you can use: <a href=""> <b> <blockquote> <code> <em> <i> <strike> <strong>