研究課題/領域番号 |
20H00580
|
研究種目 |
基盤研究(A)
|
配分区分 | 補助金 |
応募区分 | 一般 |
審査区分 |
中区分60:情報科学、情報工学およびその関連分野
|
研究機関 | 東京大学 |
研究代表者 |
塙 敏博 東京大学, 情報基盤センター, 教授 (30308283)
|
研究分担者 |
下川辺 隆史 東京大学, 情報基盤センター, 准教授 (40636049)
星野 哲也 東京大学, 情報基盤センター, 助教 (40775946)
三木 洋平 東京大学, 情報基盤センター, 助教 (70734375)
伊田 明弘 国立研究開発法人海洋研究開発機構, 付加価値情報創生部門(地球情報科学技術センター), 副主任研究員 (80742121)
|
研究期間 (年度) |
2020-04-01 – 2023-03-31
|
研究課題ステータス |
交付 (2022年度)
|
配分額 *注記 |
45,110千円 (直接経費: 34,700千円、間接経費: 10,410千円)
2022年度: 9,620千円 (直接経費: 7,400千円、間接経費: 2,220千円)
2021年度: 19,760千円 (直接経費: 15,200千円、間接経費: 4,560千円)
2020年度: 15,730千円 (直接経費: 12,100千円、間接経費: 3,630千円)
|
キーワード | 高性能計算 / プロファイリング / メニーコア・マルチコアプロセッサ / OpenMP / MPI / メニーコアプロセッサ / 余剰コア / 計算科学 / 並列処理 / 非同期IO / 電力制御 |
研究開始時の研究の概要 |
近年のCPUの性能向上は,チップ内コア数の増加によって支えられているが,計算パターンによっては全コアを使うと却って性能を低下させる場合もあり,そのような場合には多くのコアを敢えて使わずに残すことになる。本研究提案では,そのような「余剰コア」に 対して,CPUで実行している主計算を支援する役割を与えることで,システム全体の性能改善や,電力制御,付加機能を低オーバヘッドで実現することを目的とし,ユーザレベルで支援機能を制御するためのフレームワーク "UTHelper"を開発する。さらに,実際のスーパーコンピュータ上でUTHelperを用いてアプリケーションに適用し,有効性を実証する。
|
研究実績の概要 |
①余剰コアを用いたIn-situ解析として、銀河衝突シミュレーションにおける主計算(重力多体シミュレーションを用いた時間進化の計算)と副計算(数値的に得られた構造と実際に観測されている構造とを比較する解析処理)を同時に処理する機能を実現した。OpenMPのtask指示文を用いることで、プログラムの構造を大きく変えずに実現することができた。 本機能の実現により、全体の実行時間は最短で54%になるまで高速化された。 ②分散メモリ計算環境向けにMPI+OpenMP並列化されたアプリケーションに対して、動的な負荷不均衡解消手法の開発を行った。2020年度までに、MPIプロセス毎のコア割当数を制御し、ノード内負荷不均衡を緩和する手法を提案し成果を得ていた。2021年度は、ノード間負荷不均衡の問題に取り組んだ。この問題をNP困難な組合せ最適化問題と捉え、量子アニーリングマシンを用いて解くべく、QUBOモデルへの落とし込みを検討した。 ③複数GPUによるステンシル計算では、GPU間の通信がアプリケーション性能低下につながる。本年度は、GPU計算中にCPUの余剰コアを用いてGPU間通信を行う通信隠蔽手法を開発した。計算領域を複数GPUへどのように分割して割り当てるかが実行性能に大きく影響することがわかり、領域の分割方法を変えながら、性能向上に対する通信隠蔽手法の有効性について検証を行った。 ④冗長な計算を必要とするOverlapped型のテンポラルブロッキングに加え、冗長な計算を必要としないtrapezoid型、及び両者のハイブリッドのテンポラルブロッキングを3次元の拡散方程式に実装し、最新のプロセッサにおいて評価を行った。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
UTHelperの実現に向けて、In-situ解析処理として、比較的容易な方法で元のプログラムの構造を大きく変えずに主計算と副計算を実現できることを示した。UTHelperが対象とする機能として想定している、非同期ファイルIOやIn-Situ処理については、実アプリケーションに対して容易に機能追加を行うことができることが求められ、実現可能性を示せたことは、アプリケーション作成者に対して有益である。 また、OpenMPに加えてMPIプロセスまで含めた負荷不均衡を解消する方法についても検証を進めており、電力あたり性能の改善も得られる見通しである。 複数ノードのGPU間通信を効率的に行うためにCPUコアを用いることで通信隠蔽を実現して性能向上が得られており、 ステンシル計算において多く用いられるテンポラルブロッキングについても、余剰の演算器を活用して本質的には冗長な計算をあえて行わせることで、メモリに対する負荷を下げ、全体の性能を改善することができている。
|
今後の研究の推進方策 |
動的なプロファイリングスレッド数変更に加え、コアの割り当て変更についても外部から動的に行えるよう、OpenMPのランタイムライブラリと連携した動的チューニング機能を実現する。加えて、MPIプロセスと連携した負荷均衡の仕組みも引き続き検討していく。また、最新のIntel Xeon, AMD EPYCを始めとした様々なメニーコア/マルチコアプロセッサを用いて予備評価を行い、主計算の分析 と余剰コアの扱い方について検証を行っていく。アプリケーション中で補助機能を簡便に利用できるように、ヘルパースレッドを主計算とはある程度分離された形で実行しつつ、主計算とインタラクションするような機構が必要であり、OpenMP実行環境との整合性を保ちつつ実現する必要がある。 併せて、実アプリケーションを用いて、非同期ファイルIOやIn-Situ解析機能に向けた最適な余剰コアの活用方法を検討していく。
|