日本地球惑星科学連合2023年大会

講演情報

[J] オンラインポスター発表

セッション記号 S (固体地球科学) » S-TT 計測技術・研究手法

[S-TT43] ハイパフォーマンスコンピューティングが拓く固体地球科学の未来

2023年5月23日(火) 10:45 〜 12:15 オンラインポスターZoom会場 (17) (オンラインポスター)

コンビーナ:堀 高峰(国立研究開発法人海洋研究開発機構)、八木 勇治(国立大学法人 筑波大学大学院 生命環境系)、汐見 勝彦(国立研究開発法人防災科学技術研究所)、松澤 孝紀(国立研究開発法人 防災科学技術研究所)

現地ポスター発表開催日時 (2023/5/22 17:15-18:45)

10:45 〜 12:15

[STT43-P01] GPUを用いたスロースリップイベントの数値シミュレーションプログラムの開発と最適化

*松澤 孝紀1 (1.国立研究開発法人 防災科学技術研究所)

キーワード:スロースリップイベント、GPU、大規模計算

地震やスロー地震は,階層性をもったマルチスケールの現象であり,その大きさ(地震モーメント)は10桁以上の幅をもつ.すべりの速度も,ほぼ固着した状態から高速なすべりまで10桁以上の幅をもつ.さらに,M3クラスの小地震は0.1秒程度のすべり時間をもつ現象であるが,プレート境界型の大地震の発生間隔は数百年にも及ぶ.こうした階層性をもつすべり現象について,直接的なシミュレーションによる再現を目指す場合,大規模な数値計算が必須となる.このような大規模計算は発表者が計画研究の代表を務める,科研費 学術変革領域研究「Slow-to-Fast地震学」の計画研究「時空間マルチスケールモデルからの予測:大規模計算とSlow-to-Fast地震学」においても大きなテーマの一つとなっている.

一方,近年"green computing"や"sustainable IT"といった言葉で知られるように,大規模計算においても電力消費や炭素排出の削減は重要な課題となっている.例えば,東京大学情報基盤センターでは,省電力性の観点から,Oakforest-PACSシステムの後継機として,GPU搭載ノードを中心としたシステムが導入される予定である.こうした状況を受け,大規模なスロー地震・地震の数値シミュレーションを行うコードについても,様々な環境での計算に対応できるようプログラムの開発と最適化を進めている.

本プログラムは,プレート境界型大地震の発生間隔をカバーする数百年以上の時間スケールにおいて,すべりの継続時間が1日~数年以上の長さにおよぶスロー地震(スロースリップイベント)の再現を目指すものである.プレート境界でのすべりの時間発展をモデル化するために,プレート境界を多数の三角形要素で再現し(南海トラフのモデルの場合は,N~170,000要素),その境界面の摩擦力をカットオフ速度をもつ,すべり速度・状態依存摩擦則で与える.要素間の相互作用をもたらす応力変化は,半無限弾性媒質の準静的な応答の解析解に基づいて計算している.この時間発展について,時間幅適応刻みのRunge-Kutta法にを採用し,境界要素法により計算している(詳細は,Matsuzawa et al. (2010, JGR; 2013, GRL)を参照).なお計算においては,要素上の応力変化を計算するために,大規模な密行列とベクトルの積が必要であり,大きなボトルネックとなっている.

GPUノードを用いた高速化においては,MPIとNVIDIA CUDAによる並列計算を行っている.GPUとメインボード間のデータ転送には時間がかかり,また前述の行列-ベクトル積の行列部分は時間変化しないため,計算の当初に一度だけGPUに転送し,その後のGPUへのデータの転送はベクトルのみとなっている.なお,南海トラフモデルでは,行列部分を保存するために必要なメモリの総量は230GB程度である.GPU上のメモリ容量は必ずしも大きくないため,本プログラムはCPU,GPUの両方をつかったハイブリッドの計算が可能となっている.ただし,現在開発にあたって利用している東京大学情報基盤センターのWisteria/BDEC-01のAquariusノードは,1ノードあたり8台のGPU (NVIDIA A100)で構成されており,計320GB程度のメモリがGPU上で利用可能であるため,上記モデルを1ノードでも計算することが可能である.

Wisteria/BDEC-01上で本プログラムについて実行性能を評価したところ,CPUのみのOdyssey 1ノードに対して,GPUのAquariusでは1ノードあたり約16倍の高速化が実現した.また,1GPUあたりで計算すると約2倍の高速化となる.本プログラムでは,CPUとGPUの計算量の割合を調整可能であるが,Aquariusノードにおいてその効果を検証したところ,全体の約0.4%の計算量をCPU側に実行させた場合までは結果はGPUのみの場合とほぼ変わらず,それ以上のCPUの負荷では速度が低下した.この環境においては,GPUとCPUのハイブリッド計算は最適化の観点で効果的でないことが示唆される.また,Aquarius環境にてプロファイラにより計算状況を確認したところ, cuBLASによる行列ベクトル積で99%程度の時間を要しており,このスケールの計算については十分最適化されていることが確認できた.