[SCore-users-jp] OMNI OpenMP 並列リージョン開始時の動作について

Kosai Ikegami ikegami @ hpc.cs.ritsumei.ac.jp
2005年 7月 6日 (水) 18:47:13 JST


立命館大学大学院理工学研究科の池上と申します。
皆様よろしくお願いします。

現在、OMNI OpenMPを用いてJpegエンコーダ・デコーダを作成しています。
これまで処理ステップごとに5回(*2)の並列リージョンを用いて並列化していま
したが、実行時間の短縮を狙って1回(*2)の並列リージョンにまとめて実行した
ところ、実行時間の差が

1台:12.7秒 2台:0.5秒 4台:0.3秒 8台:0.1秒 16台:0.02秒

という結果が得られたのですが、1台実行時に大幅に時間が短縮されました。
1台実行時だけ大幅に時間が短縮される原因がわかりません。
この結果をどう解釈すればよいのかわからず、困っています。

OMNI OpenMPでは並列リージョン開始時にマスタースレッドからスレーブスレッ
ドへメモリのコピーが行われていると思うのですが、
その内容は全スレッドが全データを受け取るのか、各スレッドが必要な分だけ
データを受け取るのか、どちらでしょうか?


計算元のデータのメモリ使用量は12MBで、
コンパイルオプションは「-omniconfig=scash」でコンパイルしています。
よろしくお願いします。


++
立命館大学 高性能計算研究室
池上 広済
ikegami @ hpc.cs.ritsumei.ac.jp



SCore-users-jp メーリングリストの案内