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.sh
starte, 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?