The 2023 SSJ Fall Meeting

Presentation information

Poster session (Sept. 17th)

Regular session » S01. Theory and analysis method

[S01P] PM-P

Wed. Nov 1, 2023 5:00 PM - 6:30 PM Room P11 (F203) (Hall Annex)

[S01P-10] Parallelization in Seismic Ray Tracing Programs

*Shutaro SEKINE1 (1. Association for the Development of Earthquake Prediction)

はじめに
 三次元の震源決定やトモグラフィの計算を行うにあたり,震源から観測点までの波線算する必要があるが,実行時間の多くは,大量の波線計算に費やされることが知られている. 計算機の進化に伴い,一つの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本ごとにおける計算が正しければ,それほど問題にはなりそうもない.システム上で多少のオーバーヘッドがあっても,分割されていた方が早いので,今後は震源計算やトモグラフィのコードに適応する事を考えていく.