ausführen Ich habe ein sehr einfaches Skript, um mehrere Kopien eines Windows-Populationsgenetikprogramms (msvar.exe) unter Wine auszuführen. Es verwendet "find", um mehrere Ordner nach einer Initialisierungsdatei (INTFILE) zu durchsuchen, und startet dann eine Instanz von msvar.exe in jedem Verzeichnis mit dieser Initialisierungsdatei. Unterschiedliche Ordner haben unterschiedliche Parameter in der Initialisierungsdatei, so dass ich eine Reihe von Simulationen ausführen kann, indem ich den Parameter "&" hinzufüge. Hier ist es;Windows-Programm unter Wein mit gnu parallel
for i in $(find /home/msvartest -name INTFILE -type f)
do (
cd $(dirname $(realpath $i));
# wine explorer /desktop=name msvar.exe;
wineconsole --backend=user msvar.exe;
) &
done
Im Moment habe ich auf einmal 20 Exemplare von msvar.exe laufen auf jeder unter seinem eigenen wineconsole (oder Wein-Explorer-Fenster) auf meinem Dual hexacore Maschine. Jede Ausführungsinstanz kann 3 oder 4 Tage dauern, aber das Programm läuft nur auf einem einzigen Kern, daher muss ich die Simulationen parallel ausführen. Es sieht so aus, als ob Gnu parallel eine bessere Möglichkeit wäre, msvar.exe auszuführen und mir mehr Simulationen über entfernte Computer zu ermöglichen. Ich habe erfolglos versucht, Gnu parallel mit wineconsole zu arbeiten, indem ich den Vorschlägen in Run wine in parallel with gnu-parallel - needs {%} slot substitution to work folgte. Ist jemand in der Lage zu helfen oder besser noch ein Skript zu knacken, das ich verwenden könnte?
Danke für Ihre Hilfe.
Es ist sehr schmeichelhaft, dass Sie meine Antwort akzeptiert, aber eigentlich ist die Antwort von @OleTange (wer der Autor des brillanten ** GNU Parallel ist **) ist die korrektere ein - seinen Kommentar sieht unter meinem Antworten. –
Leider war ich nicht schlau genug, um Ole's Skript zum Laufen zu bringen - wie peinlich !! – dberryman