web-dev-qa-db-ja.com

ジョブを送信して、3つのノードで並列実行を実行します

以下のような送信スクリプトがあります。これは、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
user40780

いいえ、複数のノード(マシン)がある場合、それを利用するものは何もありません。すべては、このスクリプトを実行するマシンで実行されます。

&行の最後にあるcsce.pyは、現在のマシンのバックグラウンドで操作を実行するだけです。したがって、このセットアップを使用すると、現在のマシンで4x12x9のタスクを並行して実行できます。

GNUパラレルは リモート実行 をサポートします。そのため、他のマシンへの自動アクセスを設定し、入力データへのアクセス方法を検討する必要があります(すべてのマシンで共有されているボリュームで読み取り用に保存されていない場合)作業するためにデータをコピーする必要があるかもしれません)。

3
Anthon