Parallelism
送出作業以使 3 個節點執行並行執行
我有一個如下所示的送出腳本,它嘗試在具有 3 個節點的背景中執行大量 csce.py 實例……在筆記型電腦中,這通常可以成功地自動將所有後台任務分配到 16 個核心中…… .. 但是,我不確定是否在集群中,它也會自動將 4139 任務分配到 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
不,如果您有多個節點(機器),則沒有任何東西可以利用它,一切都將在您執行此腳本的機器上執行。
行
&
尾的csce.py
只是使操作在目前機器的後台執行。因此,使用此設置,您將在目前機器上並行執行 4x12x9 任務。GNU 並行支持遠端執行,因為您需要設置對其他機器的自動訪問並考慮如何訪問任何輸入數據(如果它不是為了讀取而儲存在所有機器共享的某個卷上,您可能需要將數據複製到從事於)。