0
私はコンピューティングクラスタで実行されている恥ずかしがりなパラレル(bash)スクリプトを持っています。 このスクリプトはシェルスクリプトであり、ではなく、でMPIライブラリにリンクされています。つまり、MPIランクを送ることができる唯一の方法はコマンドラインパラメータです。xargsパラレルとmpirunの組み合わせ
はこれまでのところ、私は、単一ノード内にそれを実行し、解決策は単純だった:
#!/bin/bash
#SBATCH --nodes=1
N=16
seq $N | xargs -P $N -I% my_script.bash % $N
私は2つのノードでそれを拡張できますか?私が '--nodes = 2'とちょうどN=32
を使用した場合、xargs
は同じノードのすべてのスレッドを生成しようとします。一方、mpiexec
だけを使用することはできません。スクリプトはMPI
ライブラリにリンクされていないため、どのスレッドにどのスレッドがあるか教えてもらえません。
ソリューションはMPIを使用しなければなりませんか?これは、GNU並列では非常に簡単です:seq $ N | parallel -S server1、server2、my_script.bash {} $ N –