使用 GNU 并行在 HPC 集群上运行并行 bash 作业

taf*_*kje 7 cluster gnu-parallel

在 HPC 集群上,我尝试permute2.sh使用 GNU 并行从 1 个 bash 脚本运行多个 bash 脚本 ( ),但是它并没有完成每项工作。它随机完成一项工作,而它却在做另一项工作。

permute1.sh:

PROCS=144 
permuations=1000
seq 1 $permuations | parallel -j $PROCS sh permute2.sh {}
Run Code Online (Sandbox Code Playgroud)

permute2.sh(从文件中随机抽取 100 行并对其执行一些操作以进行排列)

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.. 
Run Code Online (Sandbox Code Playgroud)

当我运行时, permute1.sh我可以看到它为每个 cpu 1 (randomlines.1.txt - randomlines.144.txt) 创建了 144 个文件,但其中大部分是空的并停止工作,有些已完成。我究竟做错了什么?

小智 1

您的ulimit -u值 < 144。让管理员更改它。