나는 3개의 노드가 있는 백그라운드에서 많은 수의 csce.py 인스턴스를 실행하려고 시도하는 아래와 같은 커밋 스크립트를 가지고 있습니다. 랩톱에서는 일반적으로 모든 백그라운드 작업을 코어의 16개에 자동으로 배포하는 데 성공합니다. .. 하지만 4*13*9 작업이 클러스터의 3개 노드(48코어)에도 자동으로 분산될지는 잘 모르겠습니다.
#!/bin/bash
#SBATCH -N 3 # Total number of nodes requested (16 cores/node)
#SBATCH -n 48 # Total number of mpi tasks requested
for simplify in 0.1 0.15 0.2 0.25
do for lmbda in 0.5 1 2 5 10 20 50 100 200 500 1000 2000 5000
do for mu in 0.005 0.01 0.05 0.1 0.5 1 5 10 50
do rm eci.out
csce.py --mu $mu --lmbda $lmbda --simplify $simplify --favor-low-energy 0.01 --bias-stable --save-energies lmbda_$lmbda\_mu_$mu\_simplify_$simplify\_ce-energies.dat --save-weights lmbda_$lmbda\_mu_$mu\_simplify_$simplify\_ce-weights.dat --casm-eci-file eci.in lmbda_$lmbda\_mu_$mu\_simplify_$simplify\_eci.out --save-hull lmbda_$lmbda\_mu_$mu\_simplify_$simplify\_ce-hull.dat --preserve-ground-state 10000 2> lmbda_$lmbda\_mu_$mu\_simplify_$simplify\_error 1> lmbda_$lmbda\_mu_$mu\_simplify_$simplify\_output &
done
done
done
wait
답변1
아니요, 여러 노드(머신)가 있는 경우 아무 것도 이를 활용할 수 없으며 모든 것이 이 스크립트를 실행하는 머신에서 실행됩니다.
&
줄 끝에는 csce.py
현재 컴퓨터의 백그라운드에서만 작업이 실행됩니다. 따라서 이 설정을 사용하면 현재 머신에서 4x12x9 작업을 병렬로 실행하게 됩니다.
GNU 병렬 지원원격 실행, 이렇게 하려면 다른 컴퓨터에 대한 자동 액세스를 설정하고 입력 데이터에 액세스하는 방법을 고려해야 합니다(읽기 위해 모든 컴퓨터에서 공유하는 일부 볼륨에 저장되어 있지 않은 경우 데이터를 복사해야 할 수도 있음). 처리하세요).