2016-11-14 16 views
0

それぞれ16個のCPUを持つ8つのノードでMPIアプリケーションを実行する必要があります。 調査しても、私はまだホストファイルの仕組みを理解できません。私はdoMPIとRmpiライブラリでRを使用しています。MPIを使用してホストファイルを作成する方法は?

これは私がこれまでに理解するものである:

私がどのように見えるホストファイルmy-hostsあります

node1 slots=16 
node2 slots=16 
. 
. 
. 

は私が単にnodeXでノードを呼び出すことができますか?

ノードの名前はどのように取得できますか?

getNodeName()などの機能はありますか?

次のコマンドラインでアプリケーションを起動するには十分ですか?

mpirun -np 1 -host my_host .... 

すべてのノードにホストファイルが必要ですか?

+0

あなたが既に読んだことを繰り返すのを避けるために、読んだ後に理解できなかったことを明記してください。また、OSなどの詳細をコンピュータに与えることもできます。関連:https://www.open-mpi.org/faq/?category=running#mpirun-hostfile –

+1

@ Hack-R、私はちょうど私の質問を更新します。上記を参照。 ;) – olegario

答えて

1

ノードの名前は、IPアドレスまたはDNSホスト名のいずれかでなければなりません。 IPアドレスを知っている場合は、DNSサーバーを照会することでノードの名前を取得できます(Windows、Linuxなどのシステムによって異なります)。

例:

localhost 
192.168.1.2 
host01.clusterdomain 

私はあなたが作業しているシステムはjob schedulerのいずれかの種類を使用するかどうかをチェックすることをお勧めします。そうであれば、ジョブスケジューラがそれを処理するので、ホストファイルの指定に気を付ける必要はありません(リソースの量を指定するだけです)。プロセス・マネージャ(mpirunののmpiexec、等)を実行している場合

最後に、ホストファイルは、ホストでのみ必要です。ただし、共有ファイルシステムを使用すると、アプリケーションに必要なすべてのファイル(必要に応じて)を含むクラスタファイルのすべてが、クラスタのすべてのノードで使用できるようになります。

+0

ありがとう! 1つの最後の質問は、ジョブスケジューラを持っていても、私はまだ-H name_node1、name_node2 ...を使用する必要がありますか? – olegario

+0

ジョブスケジューラをお持ちの場合は、**ホスト名が気にする必要はありません**(ホストはクラスタの使用状況に応じて変更される可能性があるため)。通常、 'mpirun/your/app/binary arguments'を呼び出すだけで、MPI実装はジョブスケジューラによって設定された環境変数を使ってジョブ設定を推測します。これはもっと複雑なことをしたい場合には当てはまらないかもしれませんが、もっとも典型的な用途では、それはそのままで動作します。ジョブスケジューラのドキュメントを調べるか、または管理者にインストールするように依頼してください(オープンソースのものを含め、多くのものがあります)。 –

関連する問題