Next:
Up:
Previous:
実行結果
本節で示す表についていくつかの留意点を述べておく.
表中の項目, 時間 A,B,C の意味は次の通りである.
並列処理の効果は, 時間C[sec]の比としてある.
並列オブジェクトを用いた場合には, ホストとなるPEには, 並列オブジェクトを割り付けていない. すべてを他のPEに割り付け, ホストPEはそのポインタだけをリストで保持する.
ホストPEでは, 初期化, タイムステップ処理, 各オブジェクトに対するメソッドの起動, 各メソッドの戻り値の確認, 収束判定等を行なっている. したがって, 並列オブジェクトを用いた場合には ホストPEの他に1つ以上のPEを必要とする.
1つのPEをホストPEとし, 計算に使用していないので, 本節で示す表中では, PE数 2の場合を1.0とした比を表示してある.
1つのセルを1つの並列オブジェクトとした場合の結果は示していない. 10, 100, 1000 のセルを1つの並列オブジェクト とした場合についての結果を示してあるので, 1つのセルを1つの並列オブジェクトとした場合の結果が容易に予想できる.
図5.6
,
5.8
に示したように, 決まった計算の順序がある.
p
を計算する
を計算する
自己の
p
と右隣の
p
の計算が終了していなければならない.
を計算する
自己の
と左隣の
の計算が終了していなければならない.
h
を計算する
自己の
の計算が終了していなければならない.
したがって,
の計算をはじめる前に
p
の計算が終了していることを確かめ,
の計算をはじめる前に
の計算が終了していることを確かめる 必要があるので, 計算部分を3通りのメソッド
p
を計算するメソッド
を計算するメソッド
を計算するメソッド
に分け,
すべてのオブジェクトに対して
p
を計算するメソッドを起動し, すべてが終了するのを待つ.
すべてのオブジェクトに対して
を計算するメソッドを起動し, すべてが終了するのを待つ.
すべてのオブジェクトに対して
を計算するメソッドを起動し, すべてが終了するのを待つ.
とする.
前項に対し,
の計算を1つのメソッド起動にて 計算を行なった結果を示してある. ただし, このためには, 隣接のオブジェクトがどこの計算まで終了しているかを 示すフラグを用意し, かつ, その状態を覗くためには, ユーザがプログラム中に明示的に書かなければならない.
並列オブジェクト数が使用PE数よりも多い場合には, 1つのPEに複数の並列オブジェクトが割り付けられる. このような場合, ランダムに割り付けるのではなく, PE間通信が少なくなるように ブロック的に割り付ける.
ベクトルのみを用いた場合
並列オブジェクトとベクトルを併用した場合
Mitsubishi Research Institute,Inc.
Mon Feb 24 13:38:59 JST 1997