B
Bad_Rockk
Mitglied
Hallo zusammen,
habe eine Frage zur Parallelisierung von Abläufen innerhalb eines Shellskripts.
Mein Skript ist folgendermaßen aufgebaut:
Durch die EXE_CALLS werden jeweils Berechnungsprogramme aufgerufen und die jeweilige Berechnung gestartet. Der EXE_CALL_2 braucht die Ergebnisse von EXE_CALL_1 um zu rechnen. Meine Frage wäre jetzt diese, kann ich so eine Berechnung auch parallelisieren? Dachte mir dass wenn ich das Rechenprogramm nochmals unter einem anderen Pfad installiere, könnte ich die unabhängig voneinander mit Daten füttern.
Dachte das wenn $l gerade ist Weg 1 genommen wird und wenn $l ungerade ist den zweiten Weg genommen wird. Aber wie kann ich dem Skript sagen, dass er sobald er EXE_CALL_2 angestoßen hat, l=$l+1 ausführt und dadurch einen neuen Schleifendurchgang auslöst? Aber bei Beendigung von EXE_CALL_2 dann noch die im Skript stehenden Befehle abarbeitet.
Geht sowas überhaupt? Wäre genial, dadurch könnte ich Rechenzeit einsparen. Rechne momentan nur auf einem Prozessor und der andere ist gelangweilt. Bei momentanen Rechenzeiten von 5 Stunden, wäre jede Reduktion ein Erfolg. Auch in dem Betracht, dass es wohl nicht bei der Anzahl momentaner Rechnungen bleibt.
Gruß
habe eine Frage zur Parallelisierung von Abläufen innerhalb eines Shellskripts.
Mein Skript ist folgendermaßen aufgebaut:
Code:
NR=50
l=1
while [ $l -le $NR ]; do
$EXE_CALL_1
mv $OUTPUT_FILES_1 $RESULT_DIR
$EXE_CALL_2
mv $OUTPUT_FILES_2 $RESULT_DIR
let l=$l+1
done
Durch die EXE_CALLS werden jeweils Berechnungsprogramme aufgerufen und die jeweilige Berechnung gestartet. Der EXE_CALL_2 braucht die Ergebnisse von EXE_CALL_1 um zu rechnen. Meine Frage wäre jetzt diese, kann ich so eine Berechnung auch parallelisieren? Dachte mir dass wenn ich das Rechenprogramm nochmals unter einem anderen Pfad installiere, könnte ich die unabhängig voneinander mit Daten füttern.
Dachte das wenn $l gerade ist Weg 1 genommen wird und wenn $l ungerade ist den zweiten Weg genommen wird. Aber wie kann ich dem Skript sagen, dass er sobald er EXE_CALL_2 angestoßen hat, l=$l+1 ausführt und dadurch einen neuen Schleifendurchgang auslöst? Aber bei Beendigung von EXE_CALL_2 dann noch die im Skript stehenden Befehle abarbeitet.
Geht sowas überhaupt? Wäre genial, dadurch könnte ich Rechenzeit einsparen. Rechne momentan nur auf einem Prozessor und der andere ist gelangweilt. Bei momentanen Rechenzeiten von 5 Stunden, wäre jede Reduktion ein Erfolg. Auch in dem Betracht, dass es wohl nicht bei der Anzahl momentaner Rechnungen bleibt.
Gruß