3. 高速化推進研究活動の成果

情報部デジタルサービス支援課  大泉健治 小野敏 山下毅 齋藤敦子 森谷友映

本センターのスーパーコンピュータシステムは,SX-ACEの運用を2015年2月に開始し,その後2020年7月末までサービスを行った.次いで2020年10月よりAOBA-A(SX-Aurora TSUBASA)の運用を開始し,2022年10月には,計算機資源の増強としてクラウドサービスAOBA-C(AOBA-Aと同機種)の提供を開始し,2023年7月までサービスを行った.

SX-ACEの本格的な運用の開始となる2016年度から2017年度にかけては,ジョブの実行ノード時間が100,000を超える大規模・長時間ジョブの割合が増加する傾向にあったが,2018年度以降ノード時間が短いジョブ,すなわち小,中規模・短時間ジョブの割合が増加した.この傾向はAOBA-Aの運用を開始した2020年度から2022年度までについても同様であり,従来のSXシリーズでは運用期間の後半になるほど実行ノード時間が大きくなる傾向,とは異なる状況であった.ジョブのノード時間分布について詳しくは3.2節および3.3節に記述した.

利用者ジョブの実行ノード時間の傾向変化に伴い,24時間以内の演算時間が指定されたジョブのアサインを優先的に行うなど,より効率的なシステムの利用のための運用方針の検討と実施を行っているが,ベクトル演算器を主とするSXシステムを高効率に利用するために,ベクトル演算率と並列化率を可能な限り高めることの重要性に変わりは無い.そのためにはコンパイラがコードの解析を基に自動で行うベクトル化・最適化および並列化の機能を活用すると共に,更なる性能向上のためには利用者がプログラムの高速化に積極的に関わる必要がある.そのため本センターでは1997年より現在まで継続して,利用者,センター教職員および計算機ベンダーが三者一体となった高速化支援活動を実施している.

以下では,2018年度から2022年度までの高速化支援を行ったプログラムのうち,主なものについて概略を述べる.

3.1. 高速化推進研究活動(2018年度~2022年度)

高速化支援を行ったプログラムの主なものについて,表 3.1‑1に2018年度(平成30年度),表 3.1‑2に2019年度(令和元年度),表 3.1‑3に2020年度(令和2年度),表 3.1‑4に2021年度(令和3年度),表 3.1‑5に2022年度(令和4年度)の高速化支援による性能向上比と主な改善点を示す.

表中の性能向上比における演算性能は,ベクトル化促進,演算・メモリ性能最適化等による高速化前後の演算時間比を示す.並列性能は,MPI並列化,自動並列化の促進,演算の隠蔽,通信の最適化等による高速化前後の演算時間比を示す.なお,並列化が未実施のプログラムの高速化を行った後,並列化による高速化を実施したプログラムは,性能向上比の両欄に記載がある.

表 3.1-1 2018年度(平成30年度)の高速化支援性能向上比

_images/Table3.1-1.png

表 3.1-2 2019年度(令和元年度)の高速化支援性能向上比

_images/Table3.1-2.png

表 3.1‑3 2020年度(令和2年度)の高速化支援性能向上比

_images/Table3.1-3.png

表 3.1‑4 2021年度(令和3年度)の高速化支援性能向上比

_images/Table3.1-4.png

表 3.1‑5 2022年度(令和4年度)の高速化支援性能向上比

_images/Table3.1-5.png

3.2. スーパーコンピュータSX-ACEのベクトル化・並列化の状況

2018年度から2020年度7月までの各年度における,SX-ACEシステムで実行されたジョブのベクトル演算率および並列化率と,ジョブのノード時間が全ノード時間に占める割合(ノード時間割合)との関係を図 3.2‑1に示す.なお,ベクトル演算率はジャーナル情報から,並列化率はCPU時間合計を実行ノード数と1ノード内のコア数4で除した値とし,ノード時間はジョブの経過時間と実行ノード数の積とした.

2020年度においてはベクトル演算率と並列化率がともに90% 以上となるジョブのノード時間割合が60% に達しており,利用者ジョブのSX-ACEシステムへの最適化,特に並列性能の向上が見られた.

_images/Fig3.2-1.png

図 3.2‑1 ベクトル演算率および並列化率とノード時間割合

3年間の利用者ジョブのベクトル演算率と並列化率の状況を表 3.2‑1に示す.表 3.2‑1はSX-ACEで実行された利用者ジョブをベクトル演算率と並列化率で分類し,そのノード時間の割合を全ノード時間に対して百分率で表したものである.また,表 3.2‑1からベクトル演算率と並列化率に関して3つのカテゴリで分類したものを表 3.2‑2に示す.

表 3.2‑1 ベクトル演算率と並列化率の状況 [%]

_images/Table3.2-1.png

表 3.2‑2 ベクトル演算率と並列化率の状況

_images/Table3.2-2.png

表 3.2‑2に示したように,ベクトル演算率が90% を超えるジョブのノード時間が98.5% を占めており,SX-ACEの運用開始当初に見られたベクトル演算率がほぼ0% のノード時間割合が15% あった状況と比較すると,高速化支援等によりジョブのシステムへの最適化が進んだことによる効果が確認できる.

表 3.2‑3はSX-ACEの利用が本格化した2016年度から2020年度までの5年間について,ジョブのノード時間ごとのジョブ数の割合を示したものである.2016年度および2017年度においては100,000ノード時間以上のジョブの割合が30% を超える状況であったが2018年度以降は減少に転じ,ジョブの小・中規模化への顕著な推移が見られた.

表 3.2‑3 ノード時間使用分布

_images/Table3.2-3.png

3.3. サブシステムAOBA-A・AOBA-C(SX-Aurora TSUBASA)のベクトル化・並列化の状況

2020年度から2022年度までの各年度における,サブシステムAOBA-Aで実行されたジョブのベクトル演算率および並列化率と,ジョブのノード時間が全ノード時間に占める割合(ノード時間割合)との関係を図 3.3‑1に示す.なお,ベクトル演算率はジャーナル情報から,並列化率はVEのCPU時間合計を実行VE数と1VE内のコア数8で除した値とし,ノード時間はジョブの経過時間と実行VE数の積とした.また,2022年10月に運用を開始したクラウドサービスAOBA-Cの状況は2022年度のグラフに含む.

AOBA-Aを導入した2020年度において,既にベクトル演算率と並列化率がともに90% 以上となるジョブのノード時間割合が60% に達しており,実行されたジョブは前システムのSX-ACEからの移行がスムーズに行われたことを示している.続く2021年度ではベクトル演算率は90% を超えるが,並列化率が低いジョブのノード時間割合が増加している.これらのジョブは,研究室のPCやサーバで実行されていたプログラムで,並列化が未実施のプログラムのジョブと推察される.このような新規のユーザコードで,小・中規模なジョブのノード時間が増加しているのが近年の特徴で,これらコードに対する高速化支援も重要な点となっている.2022年度ではベクトル演算率と並列化率ともに90% を超えるジョブのノード時間割合が増加していることは本活動の成果であると言える.

_images/Fig3.3-1.png

図 3.3‑1 ベクトル演算率および並列化率とノード時間割合

3年間の利用者ジョブのベクトル演算率と並列化率の状況を表 3.3‑1に示す.表 3.3‑1はAOBA-Aで実行した利用者ジョブをベクトル演算率と並列化率で分類し,そのノード時間の割合を全ノード時間に対して百分率で表したものである.また,表 3.3‑1からベクトル演算率と並列化率に関して3つのカテゴリで分類したものを表 3.3‑2に示す.

表 3.3‑1 ベクトル演算率と並列化率の状況 [%]

_images/Table3.3-1.png

表 3.3‑2 ベクトル演算率と並列化率の状況

_images/Table3.3-2.png

表 3.3‑1および表 3.3‑2の状況から,AOBA-Aの運用開始から2年半,およびAOBA-Cの運用開始から6ヶ月の期間では,ベクトル演算率が90% 以上のジョブのノード時間割合が85.7% と低い一方,並列化率が90% 以上のジョブの割合が59.2% と,過去のシステムでの状況と比較して並列化率が高い状況であった.このことは,他システムで高度に並列化されたコードが実行されるようになったと推察される.このような利用者コードの,ベクトル演算率を高める高速化支援が急務である.

表 3.3‑3は2020年度から2022年度までの3年間について,ジョブのノード時間ごとのジョブ数の割合を示したものである.なお,SX-ACEシステムの総ノード数が2,560ノードであるのに対して,AOBA-Aの総VE数が576VEであることを考慮して,ノード時間の範囲は表 3.2‑3の1/5に変更している.

2020年度から2021年度にかけては,中規模なジョブから20,000ノード時間以上の大規模なジョブへの移行が見られる状況であったが,2022年度では大規模なジョブの割合が減少に転じ,大規模なジョブと,小・中規模なジョブの2分化が見られるようになった.

表 3.3‑3 ノード時間使用分布>

_images/Table3.3-3.png

3.4. 今後の取り組み

3.2節および3.3節で述べたように,SX-ACEの運用期間中はジョブの大規模化・長時間化が進んだ一方,AOBA-Aの2年半の運用期間では小・中規模なジョブと大規模なジョブの2分化が見られるようになった.計算機の効率的な運用には,ユーザジョブのさらなる高いベクトル演算率と並列化率での実行を実現するためのMPI並列化を含む高速化支援が今後も必要である.このことに加え,利用者ジョブの実行傾向に応じてバッチジョブのスケジューリングや,ジョブの実行要求時間に応じたノードの提供方式を検討することは,限られた計算機資源の上で利用者の待ち時間を減らすなど,利用者支援として不可欠である.