2017 Fiscal Year Annual Research Report
H行列法ライブラリの機能拡張と次世代スパコン向け最適化
Project/Area Number |
17H01749
|
Research Institution | The University of Tokyo |
Principal Investigator |
伊田 明弘 東京大学, 情報基盤センター, 特任准教授 (80742121)
|
Co-Investigator(Kenkyū-buntansha) |
横田 理央 東京工業大学, 学術国際情報センター, 准教授 (20760573)
岩下 武史 北海道大学, 情報基盤センター, 教授 (30324685)
大島 聡史 九州大学, 情報基盤研究開発センター, 助教 (40570081)
平石 拓 京都大学, 学術情報メディアセンター, 助教 (60528222)
|
Project Period (FY) |
2017-04-01 – 2020-03-31
|
Keywords | 近似計算 / 低ランク / H行列 / ライブラリ / アルゴリズム / 並列計算 / 高性能計算 / ハイパフォーマンスコンピューティング |
Outline of Annual Research Achievements |
H行列法ライブラリHACApKの高機能化を目的とし、次の5項目について研究を行った。 (1)分散メモリ並列計算環境におけるH行列計算の改善に取り組んだ。効率的な通信パターンを構築することが最大の課題であったが、BLR行列の持つ規則性をH行列に導入することにより解決した。この新手法(格子H行列法)は、H行列法の高圧縮性とBLR行列の利便性を併せ持つ画期的な手法と言える。(2) 計算核不依存型FMM(KIFMM)をHACApKで扱うカーネルに対応させた。KIFMMでは擬似チャージをFMMセルに外接する球殻上に分布させる必要がある。高精度を達成しにくい欠点を改良した。(3) SMPクラスタ向けに開発してきたHACApKコードを元に、GPU向けのコードの開発を行った。特に、H行列を用いたBiCGSTAB法の高速実装に取り組み、単一GPU向け・複数GPU向けそれぞれについて高速なH行列計算コードを開発した。またGPUを用いたH行列生成手法の開発についても一定の成果を得た。(4) H行列ベクトル積のスレッド並列処理について、その改善に取り組んだ。HACApKライブラリに含まれる従来の実装の他に、動的負荷分散利用を含む5つの方式を実装し、それぞれ性能評価を行った。その結果、H行列ベクトル積のスレッド並列化では、負荷の均衡化に加えて、キャッシュヒット率を考慮する必要性があることが明らかとなり、各部分行列のアクセスは行方向に連続性を持たせる方が有利であることが分かった。(5)H行列生成処理のうち,行列の区分けを表現する木の構築処理の並列化に取り組んだ。生成すべき木は不規則な構造を持つため、ループ並列等での単純な並列化では良好な性能は得られにくい。そこで、タスク並列言語CilkPlusによる動的負荷分散機能を用いた並列化を行い、予備評価の結果ある程度の並列性能を得られることを確認した。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
下記の通り、5つの研究項目ごとに達成度はまちまちであるが、総じて概ね順調である。 (1)H行列法とBLR法を比較検討し、格子H行列法の提案へと至る一連の研究を行った。数十万元データを数百コアで計算した数値実験では、格子H行列法は従来H行列法(HACApKライブラリ使用)の1/10以下の計算時間を達成することができた。研究会2回および招待講演1回で研究成果の発表を行い、査読付き国際会議投稿した論文2本が採択された。(2) FMMのコードのFortranインターフェイスは完成しており、あとはHACApKから呼べるようにデータ構造を一致させるだけである。FMM技術でもう一つH行列に転用できるものとして、dual tree traversalを用いたadmissibilityのtask並列な探索が挙げられる。これは密行列をH行列に圧縮する際の並列化性能を向上させることができると考えられる。(3) GPUを用いた高速なH行列計算法コードを実装し性能を評価した結果を研究会やワークショップにて発表した。特にH行列を用いたBiCGSTAB法については2件の査読付き国際学会に採録された。(4) H行列ベクトル積のスレッド並列化手法において、考慮すべき要素が明らかとなり、従来法の改良アルゴリズムの方向性が明らかとなった。(5) 木の構築の動的負荷分散による並列化については、共有メモリ版の実装が完成したものの、性能面での問題が残っている。そのため、分散環境対応の実装までには至らなかった。
|
Strategy for Future Research Activity |
5つの研究項目ごとの推進方策は次の通りである。 (1)これまでに、格子H行列法の従来H行列法に対する高速化効果を、低ランク近似行列生成および行列・ベクトル積計算において検証した。今後は、より複雑な演算(LU分解・QR分解・近似逆行列計算など)について、格子H行列の並列計算アルゴリズムを開発していく。(2) 高性能化の観点からはKIFMMの高性能実装であるPVFMMを参考に多重極展開・局所展開の変換行列を保存し、インタラクションの対称性を利用してGEMMに落とし込む手法を採用する予定である。これが完成すればH行列の圧縮が高速にできるだけでなく、現在冗長に保存されている行列の成分を一回だけ保存することができ、H行列の密行列ブロック以外のメモリ使用量をO(1)に軽減できる。(3)引き続き、GPUを用いた高速なH行列計算法の実現に取り組む。既に査読付き国際学会にて発表している内容についてはさらなる性能向上や大規模環境での実行など発展課題に取り組む。行列生成についても査読付き国際学会等への採録を目指す。さらに、GPUを用いた格子H行列法の実現に取り組む。(4) H29年度の成果から、H行列ベクトル積の並列化では、部分行列のアクセスが行方向になるべく連続であることが有利であると判明したため、本方式に基づきながら、かつ負荷の均衡化を静的に図るアルゴリズムを開発、実装、評価する。(5) 共有メモリ版実装の性能問題を早急に解決するとともに,分散環境対応の実装も並行して進める。当初30年度以降に予定していたFMMとACAの混合方式への動的負荷分散への適用についても検討・実装を始める。
|