研究課題/領域番号 |
20H00580
|
研究機関 | 東京大学 |
研究代表者 |
塙 敏博 東京大学, 情報基盤センター, 教授 (30308283)
|
研究分担者 |
下川辺 隆史 東京大学, 情報基盤センター, 准教授 (40636049)
星野 哲也 東京大学, 情報基盤センター, 助教 (40775946)
三木 洋平 東京大学, 情報基盤センター, 助教 (70734375)
伊田 明弘 東京大学, 情報基盤センター, 特任准教授 (80742121)
|
研究期間 (年度) |
2020-04-01 – 2023-03-31
|
キーワード | 高性能計算 / メニーコアプロセッサ / 余剰コア / 計算科学 / 並列処理 |
研究実績の概要 |
①ユーザプログラムを再コンパイルせずに、動的プロファイリングを実現する手法を検討した。SystemTapを用いて,測定したい関数部分に着目したプロファイル、OpenMP並列数の動的な変更をほぼオーバヘッドなく実現した。主計算と同時に他の処理を実行した際の影響を測定した。 ②MPI+OpenMP並列化されたアプリケーションを効率的に動作させることを目指して、MPIプロセス毎に割り付けられるコア数(OpenMPスレッド数)をコントロールし、各コアの負荷を均一化する手法について検討した。検討手法をDCBライブラリとして実装し、アプリケーションから簡単なAPIコールのみで利用できるようにした。DCBライブラリを格子H行列法コードに適用し、15.5%の計算速度向上と8.0%の消費電力削減を実現した。 ③In Situデータ解析の実現に向けた準備として,宇宙物理分野のアプリケーションにおいて時間進化の計算中に解析処理を実行する機能を追加した.特定条件を満たしたデータだけを高頻度に単一ファイルへと追加出力する機能も追加し,非同期ファイルIO機能の予備評価に利用可能にした。 ④流体計算において頻出するステンシル計算は一般的にメモリ律速となることが知られており、余剰な演算器が発生しやすい演算パターンである。キャッシュメモリを利用し数ステップ分の演算をメモリに書き戻すことなく実行することで、余剰な演算器を活用する手法として知られるテンポラルブロッキングを3次元の拡散方程式カーネルに適用し、最新のプロセッサにおいて評価した結果,最大4.99倍の性能向上を実現した。 ⑤ステンシル計算のうち局所的に高精細にできる適合格子細分化法(AMR法)では、データ構造の複雑さから通信が性能低下につながる。余剰コアを活用するという観点からテンポラルブロッキングを最新のプロセッサで効率的に利用する方法について検討を進めた。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
UTHelperの実現に向けて、対象プログラムの変更・再コンパイルを行うことなく適切なプロファイリングが可能であることを示し、主計算に対し外部からのスレッド数変更の操作も実現した。また,コアの割り付け方について工夫することで,プログラムの効率改善が可能であることを示した.CPUにおけるプログラムの振る舞いを観測し,動的に適切なコア割り当てに変更することで、電力当たり性能も含めた性能改善が期待される。 UTHelperが対象とする補助機能として、非同期ファイルIOやIn Situデータ可視化に向けて、実アプリケーションに対して機能追加を行い、これらの補助機能の実現に向けた予備評価環境を準備している。ステンシル計算において多く用いられるテンポラルブロッキングについて、余剰の演算器を活用して本質的には冗長な計算をあえて行わせることで、メモリに対する負荷を下げ、全体の性能を改善することができている。
|
今後の研究の推進方策 |
動的なプロファイリングスレッド数変更に加え、コアの割り当て変更についても外部から動的に行えるよう、OpenMPのランタイムライブラリと連携した動的チューニング機能を実現する。また、最新のIntel Xeon, AMD EPYCを始めとした様々なメニーコア/マルチコアプロセッサを用いて予備評価を行い、主計算の分析と余剰コアの扱い方について検証を行っていく。さらに、補助機能を簡便に利用できるように、ヘルパースレッドを登録し、主計算とはある程度分離された形で実行するような機構が必要であり、OpenMP実行環境との整合性を保ちつつ実現する必要がある。 併せて、実アプリケーション中の非同期ファイルIO機能の性能プロファイリングを進め、最適な余剰コアの活用方法を検討していく。
|