日本地震学会2023年度秋季大会

講演情報

ポスター会場(2日目)

一般セッション » S01. 地震の理論・解析法

[S01P] PM-P

2023年11月1日(水) 17:00 〜 18:30 P11会場 (F203) (アネックスホール)

[S01P-10] 地震波レイトレーシングプログラムにおける並列化の試み

*関根 秀太郎1 (1. 公益財団法人 地震予知総合研究振興会)

はじめに
 三次元の震源決定やトモグラフィの計算を行うにあたり,震源から観測点までの波線算する必要があるが,実行時間の多くは,大量の波線計算に費やされることが知られている. 計算機の進化に伴い,一つのCPUの速度が上がるだけでなく,CPU内にいくつものコアを持つことで,並列処理が行われるようになったのだが,トモグラフィ等のコードはその技術が成熟化する前に作成されて使われているため,その恩恵に預かっていないように思われる.そこで,最終的には,その問題を解決するために,まずはこの手法の問題点を洗い出す事が必要であると考えられる.そこで,本研究では,以前作成していたParameterized Shooting 法(以下Parashootとする)のコードに対して,OpenMPを用いて並列化の手法およびそのコーディングをした場合のパフォーマンスとコーディングに際して注意すべき点等について述べる事とする.
解析手法
ParashootのコードをOpenMP で並列化するためにPlagma を入れ込んだコードを作成した.このようにPlagmaで分岐するコードは,OpenMP のライブラリをコンパイル時に入れなければ,並列化にならないコードとなる為,並列化の有無によるコードの比較がしやすい事が特徴である.
結果
DellのOptiplex 9020 (Intel Core7) で計算を行った.このマシンは第4世代のCore7であり,コアは8個ある.今回は,震源9個から,観測点1611点に向けての計算を行った.コア8個を使った計算では,CPU使用率が650%になった.OpenMPでは,使用するコア数を指定できるため,使用するコア数を陽に指定して計算を行ったところ,今回の場合にはコア4個での分割計算でのパフォーマンスを境にして,システムのオーバーヘッドが大きくなる現象が発生した.また,計算結果は,1個の時はシーケンシャルに出力されるが,計算の順序で出力される為,結果を確認する際には,ひと工夫が必要になりそうである.
まとめと今後
震源計算やトモグラフィのコードにおいては,波線計算及び波線上の偏微分係数の計算においては,行列計算を行う前に,一度行列を整理する工程が入っているため,波線1本ごとにおける計算が正しければ,それほど問題にはなりそうもない.システム上で多少のオーバーヘッドがあっても,分割されていた方が早いので,今後は震源計算やトモグラフィのコードに適応する事を考えていく.