• 検索結果がありません。

FCDE

ドキュメント内 電気通信大学 (ページ 45-50)

.7? スカラ変数が理由で並列化できない例

ループの配列変数に関する並列性解析機能

ループの配列変数に関する並列性解析機能は 9付録 :を基に行なっ ている.

ディレクティブ作成機能

14.章と付録&で計算して求められた集合を用いて,! ( デ ィレクティブ の作成を行なう.図..0行目に! ( デ ィレクティブを挿入する場合を例と して,! ( で必要なデータスコープ指示節に登録する変数をどのように決定す るかを述べる.このとき,すでに14.章および付録 の解析が終了し ,両解析結 果によって並列化可能であると判断されているものとする.

この実装は,正確に! ( ディレクティブを提示するために工夫したところで ある.

%-$ 節

..9&:.7行目変数は,並列化対象ブロックの内側で一度しか定義されない リダクション変数である.このような場合のスカラ変数は節に登録する 必要がある.

したがって,並列化対象ブロックとした場合には, <=の中に存在す る変数が節に登録される.

./ 0 節および/1%

..9&:.行目と6行目の変数は,並列化対象ブロックの外側で定義され,そ の定義した変数が並列化対象ブロックの内側で使用されている.このような場合の スカラ変数は# 節に登録する必要がある.

したがって 並列化対象ブロックをとした場合,下記の式より# 節に 登録するスカラ変数を計算する.

<= M9 <=<=:

9

が存在する文 <=:

93:

通常はN 指示文の時には# 節ではなく節 に登録することになる.しかしすべての変数は指定がない限り変数と定義さ れているので一般的には指示節は表示しない.

)/ 0 節

..9&:6行目と.3行目の変数は,並列化対象ブロックの内側で定義され,

その定義した変数が並列化対象ブロックの外側で使用されている.このような場合 のスカラ変数は 節に登録する必要がある.

実装 01

したがって 並列化対象ブロックをとした場合,下記の式より 節に 登録するスカラ変数を計算する.

<= M 9 <= <=: 98:

<= 94:

0 節

..9&:1行目の変数 や,8行目の変数4行目の変数は並列化対象ブ ロックの内側で使用の前に必ず定義され,並列化対象ブロック終了後使用されてい ない.このような場合のスカラ変数は 節に登録する必要がある.

したがって,並列化対象ブロックをとした場合には, 節に登録する必要 があるスカラ変数を下記の式で計算する.

<=M <= 9

が存在する文 <=:

9

が存在する文 <=:

<=

95:

b = S;

c = 0;

for( i = 0 ; i < 10 ; i++) {

tmp=0;

for( j = 0 ; j < 10 ; j++) {

a = b*i+j;

c += a;

tmp += 10*i+j;

} } d = a+c;

(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15)

b = S;

c = 0;

for( i = 0 ; i < 10 ; i++) {

tmp=0;

for( j = 0 ; j < 10 ; j++) {

a = b*i+j;

c += a;

tmp += 10*i+j;

} } d = a+c;

(A)

(B) (1) (2)

#pragma omp parallel for private(tmp,i,j) lastprivate (a) reduction(+:c) (4)

(5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15)

..? ! ( デ ィレクティブ作成例

実装 08

実行時間解析機能

実行時間解析は下記の通りに行なわれている.

. ;K -への変換:ユーザから指示された実行時間解析機能はまず対象 ソースコード を;K -に変換する.

/ 計測関数の埋め込み:;K -に変換されたソースコード は計測関数埋 め込み関数に渡される.そこで,この;K -に実行時間計測のための 関数が埋め込まれる.その際,ここではソースコード のどの部分に実行時間計 測関数が埋め込まれたかを記録するファイルを( 以下記録ファイル )作成し,

そこに記録している

0 逆コンパイル:計測関数が埋め込まれた;K -,を使用して

-言語へ逆コンパイルされる.

1 実行:逆コンパイルされたプログラムをユーザがコンパイルおよび実行し,J 実行ファイル名Jというログファイルを取得する

3 実行時間解析:ログファイルと記録ファイルを基に各部分がどのくらい時間が 掛かっているかを解析し,ユーザに提示する

࠰࡯ࠬࠦ࡯࠼

ታⴕᤨ㑆⸃ᨆᯏ⢻

ドキュメント内 電気通信大学 (ページ 45-50)

関連したドキュメント