© Hydro Technology Institute Co., Ltd.

1

スパコン・高速化分野

HPC(スパコン)対応支援/解析プログラムの改良

••

技術一覧

スーパーコンピュータを用いたシミュレーション業務支援
解析プログラムの高度化・高速化

スパ
コン・高速化© Hydro Technology Institute Co., Ltd.

2

HPC対応支援 / 解析プログラムの改良

スーパーコンピュータを用いたシミュレーション業務支援➢ 特長――――――――――――

スーパーコンピュータ「富岳」成果創出加速プログラム⚫ 世界トップクラスの大規模で高性能な汎用スーパーコンピュータを利用したプロジェ
クトの業務支援⚫ 社会的・科学的課題に向けたスーパーコン
ピュータによるアプリケーション開発⚫ スーパーコンピュータ用ハイブリッド並列化プログラムの作成⚫ より規模の大きい計算を行うための、プログラムのチューニング（高速化・高並列化・省メモリ化）➢ OS――――――――――――⚫ Linux➢ 開発言語――――――――――――
⚫ C

● C++

● Fortran➢ API／開発ツール――――――――――――⚫ MPI、OpenMP、ハイブリッド並列⚫ スーパーコンピュータ用のコンパイラ、各
種解析ツール(高速化及びプロファイル解析)➢ 技術トピックス――――――――――――
出典：理化学研究所計算科学研究機構HP（業務支援例）➢ 領域２ 国民の生命・財産を守る取組の強化「大規模数値シミュレーションによる地震発生から地震動・地盤増幅評価までの統合的予測システムの構築とその社会実装」➢ 「京」コンピュータにおいても、災害復興に関するシミュレーションの業務支援を実施© Hydro Technology Institute Co., Ltd.

⚫ シミュレーションの計算手順の検討支援⚫ シミュレーションのプログラム実装⚫ ハイブリッド並列化（MPI、OpenMP）⚫ プログラム内の処理の見直しとコード最適化による大幅な高速化・高並列化・省メモリ化とスケーラビリティを実現⚫ より大規模で精度の高いシミュレーションを実現

3

HPC対応支援 / 解析プログラムの改良

解析プログラムの高速化・高度化
このようなご要望はございませんか？

➢ 適用分野および特徴――――――――――――➢ プログラムの実行時間に不満があり、高速化により計算コストを削減したい➢ レガシープログラムの再利用とモダン化を図りたい➢ 他言語への移植を行いたい

サービスの流れ➢ 詳細

プログラム分析

1.お問合せ⚫ プログラムの高速化⚫ レガシープログラムの再利用とモダン化→構造化による解析プログラムの保守性・拡張性・可読性・信頼性の向上⚫ 多言語への移植――――――――――――

2. NDA締結

3.ソースのご提供

4.初期解析

5.作業方針検討

プログラム改善⚫ メンテナンスできなくなっているプログラ
ムの解析と改善（高度化・高速化）提案⚫ Fortran 77などに含まれる安全ではないとされる非推奨スタイルで書かれたコードをFortran 90/95/2003等のプログラムに変換（プログラムの構造化等）⚫ C/C++言語への書き換えによる高速化⚫ Python言語への書き換えによるメンテナ
ンス性向上⚫ 最新のGPU専用スパコンへのプログラム移植・高速化⚫ 大学機関や国立研究所への導入実績あり

トライ＆エラー6.実装作業© Hydro Technology Institute Co., Ltd.

7.性能評価

8.納品

4HPC対応支援 / 解析プログラムの改良

解析プログラムの高速化 - 実施事例 ➢ 適用分野および特徴

パフォーマンス分析に基づく高速化
高速化前の各関数の消費時間関数――――――――――――

高速化後の各関数の消費時間

消費時間

関数

func1

func1

func2

func2

消費時間

⚫ パフォーマンス分析に基づく処理の最適化
による高速化⚫ ボトルネックの解消⚫ 並列化による高度な高速化

➢ 詳細…

…

funcN

funcN

――――――――――――

高速化による計算時間推移
A社システムのプログラム
処理速度が7.4倍 向上

計算時
間⚫ プロファイラによるプログラム性能分析⚫ 処理手順(アルゴリズム)改善による高速化⚫ プロファイラによる並列化性能解析⚫ 導入実績例（一部抜粋）：
・経済モデル並列計算プログラム作成
・災害復興シミュレーションの高速化
・データ同化処理プログラムの高速化

B社システムのプログラム
処理速度が10倍 向上

元コード© Hydro Technology Institute Co., Ltd.

高速化
(逐次計算)

並列化

5

HPC対応支援 / 解析プログラムの改良

解析プログラムの高速化- 様々な並列化技法 (共有メモリ)

複数のコンピュータを接続した大規模な並列化

複数のcoreを持つ1台のコンピュータ内で並列化

OpenMP(分散メモリ)➢ 適用分野および特徴――――――――――――⚫ 共有メモリ型または分散メモリ型並列化による高速化

ハイブリッド可能OpenACC)

OpenMP

MPI

CPU
core1

… coreN

➢ 詳細

GPGPU
(CUDA/MPI

GPGPU

CPU
core1

… coreN

MemoryMemoryGPUGPU© Hydro Technology Institute Co., Ltd.

――――――――――――
画像や映像を高速に処理するGPUを計算用途に使用

CPU

…

core1

… coreN

MemoryGPU⚫ 並列化（OpenMP，MPI，GPGPU）⚫ ハイブリッド並列（MPI + CUDA／
OpenACC，MPI + OpenMPなど）⚫ 複数のコンピュータを利用可能な場合→MPI単体 orMPIを含めたハイブリッド並列⚫ GPUを利用できる場合→CUDA or OpenACC

HPC対応支援 / 解析プログラムの改良

解析プログラムの高速化– スパコン用プログラムの移植・高速化 ➢ 適用分野および特徴

最近、および今後のスパコンの傾向――――――――――――➢ GPUノード採用で、計算性能向上と省エネの両立➢ 今後国内で設置予定のスパコンは、GPUノードのみのとなる場合が増えてくると予想される➢ CPUノードが利用可能なスパコンにおいても、GPGPU対応が推奨されている

GPGPUに対応した高速化プログラムに移植可能
ハイブリッド並列化(MPI + GPGPU)
CPU

OSやノード間通信など、最小限の利用

CPU

CPU

CPU

MemoryMemoryMemory

GPU

GPU

GPU

GPU

大規模な計算処理を高速で実行

CPU

CPU

CPU

MemoryMemoryMemoryGPU© Hydro Technology Institute Co., Ltd.

GPU

GPU

⚫ GPU非対応の既存スパコン用プログラムを、GPUノードのみで構成されるスパコンへ移植⚫ スパコン用プログラムのGPU対応による高速化➢ 詳細――――――――――――⚫ GPUノードのみで構成されるスパコンの増加→処理性能向上、省エネ化、低コスト化⚫ ハイブリッド並列（MPI + GPGPU)⚫ 簡易なGPU対応スパコン用プログラム→全体的にMPI + OpenACCで高速化⚫ 高度なGPU対応スパコン用プログラム→ボトルネックに絞ってMPI + CUDA
で高速化
備考
国内で稼働予定のGPUスパコン- OFP-II(2024春稼働予定)- TSUBAME 4.0(2024春稼働予定)※海外の新規スパコンはほぼGPUスパコン

HPC対応支援 / 解析プログラムの改良

スーパーコンピュータ用プログラムの最適化業務支援
ハイドロ総研のスーパーコンピュータ利用実績
・理化学研究所
・海洋研究開発機構
・東京大学
・京都大学
・名古屋大学・その他

富岳 / 京コンピュータ
地球シミュレータ
Oakforest-PACS
Camphor2 / Laurel2 / Cinnamon2
FX100

➢ 特長

――――――――――――⚫ スーパーコンピュータのシステム変更に伴うプログラムの最適化作業を支援⚫ 利用したいスーパーコンピュータの特色に合わせたプログラムの最適化等を提案⚫ 異なるジョブ管理ツール、異なるコンパイ
ラ、異なるライブラリにも柔軟に対応➢ OS
ジョブ管理ツール利用実績
・PJM
・Slurm・その他

・PBS
・JobScheduler

コンパイラ利用実績
・富士通コンパイラ ・NECコンパイラ
・Intelコンパイラ
・Crayコンパイラ
・PGIコンパイラ
・その他

あるスーパーコンピュータ用のプログラムを、利用したいスーパーコンピュータで動作するように最適化

subroutine aaa(･･･)
integer i, j::

最適化

subroutine AAA(･･･)
integer I, J::

スーパコンピュータ用のプログラムは、特定のシステム専用であるため、最適化する場合は解決すべき課題が山積……
・システム仕様の違い
・リソースポリシーの違い
・ジョブ管理ツール違い
・コンパイラの違い
・並列処理ライブラリの違い
・その他のライブラリ違い© Hydro Technology Institute Co., Ltd.

――――――――――――⚫ Linux➢ 言語、API、ツール――――――――――――⚫ C、C++、Fortran⚫ MPI、OpenMP、ハイブリッド並列⚫ スーパーコンピュータ用のコンパイラ⚫ ジョブ管理ツール➢ 技術トピックス――――――――――――⚫ 利用したいスパコンで動作するようにコードの修正⚫ スパコンの特色に合わせたコードの最適化⚫ ジョブ管理ツールに合わせた実行環境構築⚫ コンパイラに合わせたビルド環境の構築

8