2

mpirun-machineフラグを使用するにはどうすればよいですか?

実行するクラスターノードを選択するには、次のようにmpirun's-machinefileオプションを使用することがわかりました

> mpirun -machinefile $HOME/utils/Host_file -np <integer> <executable-filename>

Host_file各行に 1 つずつ、ノードのリストが含まれています。

しかし、さまざまな引数を持つ一連のプロセスを送信したいのですが、それらを同じノードで実行したくありません。つまり、次のようなことをしたい

> mpirun -machinefile $HOME/utils/Host_file -np 1 filename 1
nano Host_file % change the first node name
> mpirun -machinefile $HOME/utils/Host_file -np 1 filename 2
nano Host_file
> mpirun -machinefile $HOME/utils/Host_file -np 1 filename 3
nano Host_file
...

フラグを使用して、-machine実行ごとに異なるノードを入力するだけです。しかし、私はそれを機能させることができません。例えば

> mpirun -machine node21-ib -np 1 FPU
> mpirun -machine node21 -np 1 FPU

常にマスター ノードで実行されます。

-nodesオプションもつけてみた

> mpirun -nodes node21-ib -np 1 FPU
> mpirun -nodes node21 -np 1 FPU

しかし、それは現在のノードで実行されるだけです。

-nolocal同様に、 and-excludeオプションを試しましたが成功しませんでした。

簡単な質問があります:オプションをどのように使用すればよい-machineですか? または、これを行うためのより良い方法はありますか (Linux 初心者向け)。

私は次のバージョンの MPI を使用していますが、Web 上にはドキュメントが驚くほど少ないようです (これまでのところ、私が持っているドキュメント全体は から来ています> mpirun --help)。

> mpichversion
MPICH Version:          1.2.7
MPICH Release date:     $Date: 2005/06/22 16:33:49$
MPICH Patches applied:  none
MPICH configure:        --with-device=ch_gen2 --with-arch=LINUX -prefix=/usr/local/mvapich-gcc --with-romio --without-mpe -lib=-L/usr/lib64 -Wl,-rpath=/usr/lib64 -libverbs -libumad -lpthread
MPICH Device:           ch_gen2

ご協力いただきありがとうございます。

4

1 に答える 1

1

必要なのは、hostsファイルを特定することです

たとえば、あなたのmpirunコマンドで試し てみてくださいmpirun -np 4 -hostfile hosts ./exec

ホストにIPアドレスが含まれている場合、通常192.168.1.201:8、最後の桁はコアの最大数であり、各ノードを改行で区切ります。理想的には、たとえばトルクやマウイなどのクラスター管理ソフトウェアをインストールする必要があります。

于 2012-12-24T04:22:13.767 に答える