Vitruvian Penguin
knoppix

[knoppix:5654] Re: MPIでの並列処理が遅い

Date: Mon, 17 Oct 2005 11:52:49 +0900
X-mailer: Microsoft Outlook Express 6.00.2800.1506
広島国泰寺高校の山田です.


> > 各ノードに処理が正しく分散されていないかのどちらかだと思います.
> この可能性は無いと思います.私の並列処理プログラムは解析のためにramdisk
> 容量をフルに使う必要があり負荷分散は正確に行わないと所望の解析は出来ませ
> ん.そのために負荷分散には正確にプログラミングしたので負荷分散に問題は残
> されていないと思います.
>
> > ノードの台数にほぼ反比例して時間が少なくなっていれば,
> > 各ノードに処理が正しく分散しているといえるでしょう.
>
> これまでに4台と16台で解析を行いましたが処理時間は反比例して短くなってい
> ました.
> やはり負荷分散は正確に行われていると思います.
そうですか,負荷分散はOKなんですね.
並列プログラムは,例えば4並列のプログラムでも,
1台のPCで動くので,よもやとは思いましたが,余計なこと書いてしまいました.
しかし,こうなるとやはり何が問題なのか気になりますね.
PCのメモリの空きはどうなんでしょう?
VineのときとKNOPPIXの時でかなり違っていませんか?
たとえば,KNOPPIXの時にはメモリが不足してHDDにスワップが起きているとか?


> > ネットワークの問題で通信処理が遅いために速度が低下しているか,
>
> 今回VineLinuxによる解析環境とKnoppixによる解析環境は同じなのでネットワー
> クの通信速度については問題はありません.
いや,ハードの問題ではなく,システムとしてという意味です.

> ただしMPIかKnoppixのどちらかは分かりませんが通信処理については疑わしいで
す.
> 山田さんのアドバイスにもありましたがJumpshotでのログ解析を以前行いました.
> その結果VineLinuxに比べKnoppixでの通信時間が大幅に長い結果になっていまし
た.
> 私のプログラム中では数100個の変数をMPI_SendとMPI_Recvで通信する部分があ
> ります.
> 私が思うのに1つの変数の通信時間は変わらないと思うのですが,数100個の変数
> の通信になると遅延が生じるのだと思います.それは並列処理における通信処理
> が遅いことが問題だと思います.だから通信する変数の数が増えると処理に時間
> がかかってしまうのだと思います.
> 現状では原因の見当が付きませんが.
VineとKNOPPIXで比較して,通信コストのみが大きく違うのなら
通信処理の問題だといってよいのではありませんか?
NICのドライバなどの何らかの原因でKNOPPIXの時にはVineほどの
性能が出ていないのではないでしょうか?
VineとKNOPPIXでそれぞれ,NICの状態の確認してみてはいかがでしょう.

あるいは,データの粒度を変えながら,
繰り返しMPI_SendとMPI_Recvで通信する簡単なプログラム(いわゆるピンポン
ベンチマーク)を書いて,VineとKNOPPIXで比較してみてはどうでしょうか?

興味のある問題なので,今後も是非報告してくださいね.

YAMADA
<Prev in Thread] Current Thread [Next in Thread>