2011-01-21 [長年日記]

┌|∵|┘ インチキ並列化

done. しかし, MPI と OpenMP の hybrid にしてみたけど, OpenMP 遅いな... pthread 使ってみるか.

本日のツッコミ(全6件) [ツッコミを入れる]
839 (2011-01-21 14:38)

ノード内16コアをスレッド並列にしていますか?1プロセス4コアの場合はどうですか?ちゃんとプロセスとソケットの対応が固定されるオプションは付けていますか?

(2011-01-21 16:31)

えーと, 1プロセスのコア数については色々試した. で, 直感に反して4(MPI) x 4(omp) よりも 1(MPI) x 16(omp) の方が速かったりする. 結局 16x1 が一番速かった. で, プロセスとソケットの対応が固定されるオプションてのを教えてください><

839 (2011-01-22 15:23)

1プロセス16スレッドの方が速いのですか。それは16プロセスx1スレッドよりも速いのでしょうか?最後の件については、Affinity なんちゃらというオプションがバッチスクリプトのオプションにないか確認してみてください。

(2011-01-22 15:33)

いや core 数を16に固定した場合, 16プロセスx1スレッドの方が1プロセス16スレッドより速いよ. 上の「結局 16x1 が一番速かった」ってのはこのことです . ちなみに手元の Xeon だと逆の結果になりますです. MV2_ENABLE_AFFINITY=0 にしてますね, マニュアルでハイブリッドの場合はこっちがおすすめと書いてあったので.

839 (2011-01-24 13:01)

p x t で (fast) 16x1 > 1x16 > 4x4 (slow) ということですね。ちょっと複雑ですね。ただ、遅くなっている原因がわかっていないと、OpenMPをpthreadにしたからといって速くなるかは分からず徒労に終わるかもしれませんよ。

(2011-01-24 13:03)

まあでも AMD の OpenMP 遅いって噂ですし, Xeon でやったらちゃんと OpenMP の性能も出ていたのでその辺なんだと思います.


«前の日記(2011-01-16) 最新 次の日記(2011-01-23)»