質問

MPIクラスターをセットアップしようとしています。しかし、MPD.CONFファイルに追加されたCPUの数が正しく使用されていないという問題があります。 3つのUbuntuサーバーがあります。 48コアを備えたOpteronは、8コアを備えた8コアCalc1を備えた8コアを備えています。

私のmpd.hostsは次のように見えます:
opteron:46
calc1:6
calc2:6

起動した後(mpdboot -n 3 -f mpd.hosts)システムが実行されています。 mpdtrace->それらの3つすべてがリストされています。

しかし、「mpiexec -n 58 raxmlhpc -mpi ...」のようなプログラムを実行すると、Calc1とCalc2が多くのジョブに到達し、Opteronが同時に少数になります。私は何が間違っているのですか?

よろしく

bjoern

役に立ちましたか?

解決

回避策を見つけました。 MPIEXECコマンドに追加のパラメーター "-machinefile/to/mpd.hosts"を使用しました。そして今、すべてのノードは正しく実行されています。私が得た問題の1つは、次のエラーメッセージを受け取ったことです。

... MPIU_SHMW_SEG_CREATE_ATTACH_TEMPL(671):Open Failed-そのようなファイルやディレクトリはありません...

それを修正するには、環境変数を設定する必要がありました MPICH_NO_LOCAL=1

他のヒント

あなたが理解したように、あなたは両方にマシンファイルを渡す必要があります mpdbootmpiexec ホストあたりのプロセスカウントを使用するため。 「Open Failed」問題は、使用しているProcess ManagerであるMPDの既知のバグです。に注意してください MPICH_NO_LOCAL=1 回避策は機能しますが、おそらくイントラノード通信に大きなパフォーマンスペナルティが発生します。

MPICH2(またはMPICH2デリバティブ)を明らかに使用していますが、使用しているバージョンは明確ではありません。可能であれば、MPICH2 1.2.1p1または(さらに良い)1.3.1のいずれかにアップグレードすることを強くお勧めします。これらのリリースの両方には、呼ばれる新しいプロセスマネージャーが含まれます ハイドラ それははるかに速く、より堅牢です。 1.3.1では、Hydraはデフォルトのプロセスマネージャーです。それは必要ありません mpdboot フェーズ、およびそれはaをサポートします $HYDRA_HOST_FILE 環境変数で、すべてのマシンファイルを指定する必要がないように mpiexec.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top