2016 Fiscal Year Annual Research Report
大規模グラフで表現された不規則・複雑な対象を高速にシミュレーションする方法の研究
Project/Area Number |
15H01687
|
Research Institution | Osaka University |
Principal Investigator |
萩原 兼一 大阪大学, 情報科学研究科, 教授 (00133140)
|
Co-Investigator(Kenkyū-buntansha) |
伊野 文彦 大阪大学, 情報科学研究科, 准教授 (90346172)
置田 真生 大阪大学, 情報科学研究科, 助教 (50563988)
|
Project Period (FY) |
2015-04-01 – 2020-03-31
|
Keywords | 超高速情報処理 / アルゴリズム / 生体機能シミュレータ / 自動並列化 / 自動プログラム生成 / 負荷均衡 / ベクトル処理 |
Outline of Annual Research Achievements |
Flintの既存実装に対して、計算式の実行順序ならびにメモリへのデータ配置を変更することにより,シミュレーションを最大で約1.6倍高速化する手法を提案した.具体的には、GPUで1.16~1.60倍,CPU32台のMPIでの並列実行で1.02~1.51倍である. Flintが生成するコードをベクトル型スパコンSX-ACEで高効率に動作するようにした.逐次コードに対してSX-ACEの自動ベクトル化機能を利用すると,ほぼ全てのループをベクトル化できない.その原因は,間接参照によるループ内依存関係の判定が難しいことおよびユーザ定義関数の呼び出しである.指示行によって依存関係がないことを明示し,ユーザ定義関数をインライン化することで,ベクトル演算率は99%を達成した.さらに演算の実行効率を向上させるために,参照順のAoSで並んでいたデータ配置を,ベクトル演算でよりアクセス効率の良い要素順のSoAに近い形に変更した.その結果,既存コードをそのままSX-ACEで実行したものと比較して最大36倍の性能向上が得られた. 既存実装で生体モデルを表す依存グラフを並列実行数で分割すると,一部の生体モデルにおいて分割結果に偏りが生じ,プロセッサ間で計算負荷が不均衡になる.その対策として,並列実行数よりも多い数でグラフ分割し,それらの複数の部分グラフを併合することで,所望の並列実行数にする負荷均衡化方法を提案した.さらに,過剰な分割を避けるために,分割結果が均衡するような最小の分割数を自動決定する.この手法を適用すると,プロセッサの計算負荷の最大値と平均値の差を,既存実装で不均衡である場合に対して1.30倍から1.01倍に,均衡する場合に対して1.03倍から1.00倍に均衡化した.計算速度に関しては,不均衡な場合に対してマルチコアCPUで1.18倍,CPUクラスタで1.22倍の高速化を達成した.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
平成28年度交付申請書の研究実施計画に記載した内容に関して,研究実績の概要に記載通り実施できたため.
|
Strategy for Future Research Activity |
現時点では,研究計画調書の研究計画・方法に記載した通りに実施可能と考える.
|