Ausführen paralleler Bash-Jobs auf einem HPC-Cluster mit GNU parallel [geschlossen]

7

Auf einem HPC-Cluster versuche ich, mehrere Bash-Skripte ( permute2.sh) von einem Bash-Skript mit GNU parallel auszuführen , es werden jedoch nicht alle Jobs ausgeführt. Ein Job wird zufällig ausgeführt, während der andere nicht ausgeführt wird.

permute1.sh:

PROCS=144 
permuations=1000
seq 1 $permuations | parallel -j $PROCS sh permute2.sh {}

permute2.sh (100 zufällige Zeilen aus einer Datei nehmen und einige Aktionen für die Permutation ausführen)

id=$1
randomlines=100
awk 'BEGIN{srand();} {a[NR]=$0}
END{for(I=1;I<='$randomlines';I++){x=int(rand()*NR);print a[x];}}'
FILE.txt > results/randomlines.$id.txt

# do stuff with randomlines.$id.txt.. 

Wenn ich permute1.shstarte, kann ich sehen, dass 144 Dateien für jede CPU 1 (randomlines.1.txt - randomlines.144.txt) erstellt werden, aber die meisten von ihnen sind leer und funktionieren nicht mehr und einige sind abgeschlossen. Was mache ich falsch?

tafelplankje
quelle
Führen Sie diesen Job als Teil einer Batchdatei in Ihrem Cluster aus? Gibt es vom Ressourcenmanager festgelegte Einschränkungen, die die Anzahl der Prozesse oder Dateien begrenzen, die Sie ausführen können?
jsbillings
3
Ich habe Ihre Programme auf meinem Laptop getestet und es endete ohne Probleme. Es handelt sich also wahrscheinlich um ein Problem, das auf Ihr System beschränkt ist. Meine Vermutung wären Dateihandles. Verwenden Sie die Protokolldatei --joblog, um festzustellen, welche Jobs fehlgeschlagen sind. Verwenden Sie --retries 3, um einen fehlgeschlagenen Job dreimal zu versuchen.
Ole Tange
1
Wenn ich nur die Jobs 'qsub', werden sie alle perfekt abgeschlossen. Also habe ich es jetzt zum Laufen gebracht ... Es muss tatsächlich einige Einschränkungen geben, aber ich bekomme keine Antwort vom Helpdesk (es ist übrigens ein PBS-System). Ich werde nur nicht parallel für diese Gelegenheiten verwenden ..
Tafelplankje

Antworten:

1

Ihr ulimit -uist <144. Lassen Sie das von einem Administrator ändern.

user39122
quelle