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

Mitsuhisa Sato msato @ cs.tsukuba.ac.jp
2005年 7月 6日 (水) 20:38:27 JST


池上 様、
さとう@筑波大です。

From: Kosai Ikegami <ikegami @ hpc.cs.ritsumei.ac.jp>
Subject: [SCore-users-jp] OMNI OpenMP 並列リージョン開始時の動作について
Date: Wed, 06 Jul 2005 18:47:13 +0900
> 
> 現在、OMNI OpenMPを用いてJpegエンコーダ・デコーダを作成しています。
> これまで処理ステップごとに5回(*2)の並列リージョンを用いて並列化していま
> したが、実行時間の短縮を狙って1回(*2)の並列リージョンにまとめて実行した
> ところ、実行時間の差が
> 
> 1台:12.7秒 2台:0.5秒 4台:0.3秒 8台:0.1秒 16台:0.02秒
> 
> という結果が得られたのですが、1台実行時に大幅に時間が短縮されました。
> 1台実行時だけ大幅に時間が短縮される原因がわかりません。
> この結果をどう解釈すればよいのかわからず、困っています。

1台実行時というのがわかりません。

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

開始時は、マスタスレッド側のスタックから共有される局所変数をコピーして
います。共有されるグローバルなデータはページにアクセスした時にSCASHで
コピーされます。

さとう。




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