![GNU Parallel을 사용하여 HPC 클러스터에서 병렬 bash 작업 실행 [닫기]](https://linux55.com/image/43850/GNU%20Parallel%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20HPC%20%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EC%97%90%EC%84%9C%20%EB%B3%91%EB%A0%AC%20bash%20%EC%9E%91%EC%97%85%20%EC%8B%A4%ED%96%89%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
HPC 클러스터에서 GNU를 사용하여 1개의 bash 스크립트( )에서 여러 bash 스크립트를 병렬로 실행하려고 시도했지만 permute2.sh
모든 작업을 수행하지는 않았습니다. 무작위로 한 작업을 완료하고 다른 작업이 중단됩니다.
permute1.sh:
PROCS=144
permuations=1000
seq 1 $permuations | parallel -j $PROCS sh permute2.sh {}
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..
실행하면 permute1.sh
각 CPU 1에 대해 144개의 파일(randomlines.1.txt - randomlines.144.txt)이 생성되지만 대부분이 비어 있고 작동이 중지되고 일부는 완료되는 것을 볼 수 있습니다. 내가 뭘 잘못했나요?
답변1
귀하의 ulimit -u
값은 < 144입니다. 관리자가 변경하도록 하세요.