クラスタ型の高性能計算機(High Performance Computing、以下HPC)システムを用いた数値シミュレーションの実行には分散メモリ並列化が必要となる。 今日の大規模数値シミュレーションでは、分散メモリ並列化にMPIを用いる。通常、MPI化に際しては、並列化を阻害する依存関係が存在せず、並列化を行なっても結果に大きな差異を生じないことの保障や、どのように計算領域(あるいは処理)を分割するのか、どのように分割した領域間のデータを通信するかを設計・実装する必要がある。しかし、計算科学に携わる研究者がMPI 化に多大なる時間を割くことは現実的ではなく、MPI化作業を外注する場合がある。 外注し、MPI 化されたコードは可読性が損なわれる場合が多く、コードの維持管理を困難にする。本研究では、利用者のMPI化作業を軽減するMPI化支援関数群Mutton を提案する。Muttonは、MPI化に必要である計算領域の分割や境界要素の交換などの煩雑な操作を代行する関数およびスレッド操作を用いる演算と通信のオーバーラップ手法や、演算と並行してファイルI/O を行うアシスタント・プロセス手法などのシミュレーションの実行時間の削減を目的とする最適化手法を適用するための関数とフレームワークで構成される。
Mutton(1.0)は数値流体解析シミュレーションコードに必要な以下の関数群を用意している。インタフェースはFortranのみである(C言語インタフェースは提供予定)。
- MPI の初期処理・終了処理
- 計算領域分割(二次元分割まで)
- データの配布・収集
- 境界要素の交換
- 残差の集計
Muttonの関数群のみでMPI化の全てが可能であるが、処理の一部分だけに適用することも可能である。
Mutton提供希望や要望・質問のある方は、nri-sec@ais.cmc.osaka-u.ac.jp 宛にメールを送付ください。
