Next: Up: Previous:

まとめ

本節では, ABCL/f を用いた流体力学の解析計算について述べた.

まず, 1 CPU 時において FORTRAN で記述されたものには及ばないようである, ということが挙げられる. ABCL/fでは, 一度 C++ に変換した後に実行モジュールを生成している. したがって, 最適化において以下の点が大きいと考えられる.

特に2点目においては, ABCL/f 処理系は, 並列オブジェクトを用いて並列処理を行なうことを前提に開発されており, 並列オブジェクトを用いず 並列処理も行なわないプログラムに対しては, 高い性能を出すのは困難であると思われる.

次に並列オブジェクトを用いて並列化を行なった場合であるが, 十分に計算処理量が通信処理量を上回れば, 前述したように 高い並列効果を得られる. また, セルを並列オブジェクトとすることによって, あるセルに必要な計算が非常によく見える. 配列とループ を用いる場合にくらべて, 計算に必要な値とそうでない値が明確に分かるのである. つまり, データ依存性がよく見えるため並列化作業がしやすくなる. 一方で, FORTRAN を用いる時のように配列と DOループを用いて自動的に並列化する方法に比べて, 隣接域から必要な値を得るようにプログラムを構成しなければならず, プログラム作成の手間は大きい. プログラムの行数を比較すると FORTRANプログラムの3〜4倍程度の量となっている. また, 本例題のおいては, 各並列オブジェクトの計算処理量, 通信処理量ともにほぼ同じであった. つまり, 各PEに対する負荷がほぼ等しかったわけである. このような問題に対しては, 並列オブジェクトの分散に関しては非常に簡単である. 各PEに同じ数ずつ 並列オブジェクトを割り当てればよい. しかし, 一般には 各並列オブジェクトの負荷は異なり, 各並列オブジェクトのPEへの割り付けが 性能向上の鍵となる.

以上のように, 逐次性能/計算式の記述性などにいくつかの問題点を見ることができる. しかし, 並列オブジェクトの構成が適切に行なえれば, 並列オブジェクト間のデータ依存性が明確であるため, 高い並列処理効果が期待できるであろう.

最後に ABCL/fを用いて 流体力学計算を行なったことに対する感想を述べておく.



Mitsubishi Research Institute,Inc.
Mon Feb 24 13:38:59 JST 1997