• 検索結果がありません。

ホールスラスタ・シミュレーション向けParticle-In-Cell法のGPUへの移植

N/A
N/A
Protected

Academic year: 2021

シェア "ホールスラスタ・シミュレーション向けParticle-In-Cell法のGPUへの移植"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)情報処理学会第 78 回全国大会. 1A-01. Particle-In-Cell 法の GPU への移植 宮島. 敬明†. †. 宇宙航空研究開発機構. 張. 科寅†. 航空技術部門. 藤田. 直行†. 数値解析技術研究ユニット. あらまし ホールスラスタは、従来の化学推進 エンジンに比べ 1 桁程度高い比推力と搭載推進 剤重量の削減による軽量化により、宇宙におけ る輸送コストの低減を実現する技術として期待 されている。その設計には、コスト面での成約 により計算機を用いた数値シミュレーションに よる試作が行われているが、第一原理計算に近 い処理のため、膨大な計算時間が必要なことが 知られている。我々は、JAXA が研究開発を行っ ているシミュレーション用コード”NSRU-FullPIC”のアクセラレータを用いた高速化について 研究を行っている。本稿では、巨大なループの 一部の GPU への移植について述べる。 1. Particle-In-Cell 法によるホールスラス タのシミュレーション ホールスラスタはプラズマの放電を推進力と している。その支配方程式は、個々の荷電粒子 の運動を支配するボルツマン方程式(式 1)と、 電磁場の時間と空間の変化を支配するマクスウ ェル方程式となり、確率解法である ParticleIn-Cell (PIC) 法を用いて解くことができる[1]。. f f F f      (( f ' f 1'  ff 1 )) gdv1 (1) t r m v  ここで、f は速度分布関数、v は 3 次元方向の 速度、r は 3 次元座標、m は原子の質量、g は 衝突する 2 個の粒子の相対速度 (g = v1 − v) の大きさ、dΩ は衝突の微分断面積を表す。な お、粒子衝突は速度がそれぞれ v, v1 である 2 粒子が衝突し、それぞれ v′, v′ 1 になった 際の速度分布関数をそれぞれ f ≡ f (v, r, t), f1 ≡ f (v1 , r, t), f′≡ f (v′, r, t), f1 ′≡′f (v1, r, t) とした。ボルツマン方 程式の左辺と右辺は、時間ステップが十分に小 さいとすれば、独立した過程として取り扱うこ とができ、それぞれを以下のように扱っている。 左辺(速度分布関数の時間発展)を各粒子に代表 "Porting a Particle-In-Cell method for Hallthruster to GPU” †Japan Aerospace Exploration Agency (JAXA). 1-1. 図 1:NSRU-Full-PIC の処理手順 させて運動方程式で解くことでラグランジュ的 に扱う。すなわち、中性ガス、イオン、電子そ れぞれのシミュレーション粒子の軌道を運動方 程式とし、4 次のルンゲクッタ法で解く。以上 を 1 タイムステップとして粒子と場を交互に更 新することにより、プラズマの流れと静電場の 時間発展を解く。一般的に、1 タイムステップは 実 時 間 の 1x10^-12 [sec] に 相 当 し、格子間隔 0.2 [mm]程度の正方格子、計算に必要な粒子の 数は数千万から数億に達する。 2. 既存 CPU コードの解析 JAXA で研究開発を行っている、ホールスラス タ 用 Particle-In-Cell 法 プ ロ グ ラ ム ” NSRUFull-PIC”のフローチャートを図 5 に示す。各 ステップの括弧に主要な処理を示した。PIC 法 では各粒子はモデル上を自由に動きまわるが、 電場を計算するためのグリッド(固定座標上の格 子)が用意されている。それに伴い、粒子を格納 する配列とグリッドを示す配列の大まかに 2 種 類の配列を元に計算を行う。NSRU-Full-PIC は CPU 用のコードで約 7000 行の Fortran 90 で 記述されており、MPI を用いた粒子分割(マルチ プ ロ セ ス 化 ) が 行 わ れ て い る が 、. Copyright 2016 Information Processing Society of Japan. All Rights Reserved..

(2) 情報処理学会第 78 回全国大会. 図 3:CPU 実装と GPU 実装の処理時間比較 図 2:粒子数と処理時間の関係 OpenMP などのマルチスレッド化は行われていな い。図 1 内のステップ 4 と 9 では、各粒子の 物理量をグリッドの四隅に割りつける処理が発 生 す る 。 こ の 処 理 は 、 Read-After-Write(RAW) ハザードを引き起こす典型的な処理で、スレッ ド 並 列 化 を 阻 害 し 、 グ リ ッ ド 内部の粒子の数 (数百個)に応じて計算負荷が爆発的に高くな る。加えて、粒子の持つ物理量には浮動小数点 型が用いられており、計算順序によって結果が 異なってしまうことも並列化を行う上で問題で ある。また、ステップ 5 と 10 では粒子の情報を 全プロセスで共有するため、MPI の ALL REDUCE 通信を複数回行う。ステップ 6 では、電場の計 算(グリッド数*グリッド数の粗行列計算)に は PETSc[2]を用いている。 図 2 に 1 プロセスで粒子数を増やした際の処 理時間の推移を積層グラフで示す。評価には、 Xeon E5-2697v2(2.7GHz), DDR3-1600 128GB を用 いた。x 軸は正規化した粒子数を示す。なお、基 準値(左端の 1)は電子とイオンが 30 万個で中性 子が 200 万個であり、右端の 12 は電子とイオン が 30*12 万個で中性子が 12*200 万個である。処 理時間は粒子数に比例して伸びている。詳細な 評価では、4.電化の外挿に含まれる particle_ att_{ion,ele}や 8.粒子の運動内の particle_ move_{ion,ele,neu}、11.粒子間衝突の際にソー トを行う collision_sort_{ion,ele,neu}のサブ ルーチンが粒子数に比例している。. (particle_att_{ion,ele})、2 つ目はイオンと電 荷の状態を元にポアソン方程式を解くための前 処理(field_poisson) である。データ構造は、 CPU 版をそのまま引き継ぎ SoA 形式とした。ま た、互換性のため、CPU 版の各 Fortran サブル ーチンをそのまま GPU の CUDA カーネルとした。 評価には NVIDIA 社の Tesla K20c と CUDA 7.5 を 利用した。 図 3 に「4.電荷の外挿処理」の CPU 実装と GPU 実装の処理時間の比較を示す。割り付け処理は、 間接参照を原因とするメモリへのランダムアク セスに加え、RAW ハザードが多発しており、その ままでは高速化が困難であった。1.1 倍程度の高 速化は充分とは言えないため、更なる研究が必 要である。なお、ポアソン方程式の前処理は 2x2 ステンシル計算を主としており、3.5 倍程度の高 速化を達成した。GPU 版の関数と CPU 版 NSRUFull-PIC とを結合した全体評価では、データ転 送がボトルネックとなり 1 桁程度遅くなってし まった。大規模なループを持つ本プログラムは 一部だけの GPU 化では高速化が不可能であった。 4. まとめと今後の課題 本稿では、Full-PIC 法を用いたホールスラス タ用シミュレーションコード”NSRU-Full-PIC” の割り付け処理の GPU を用いた高速化について 検討を行った。今後は、粒子のソートを利用し た割り付け処理の高速化と更なるプログラムの 解析を行い、全体の処理時間を短縮していく。 文献. 3. GPU への移植の検討 手始めに、NSRU-Full-PIC の中で最も計算負 荷の高い「4.電荷の外挿処理」のシングル GPU 実装について述べる。 4. 電荷の外挿処理は大 きく 2 つの処理に分かれる。 1 つ目は各粒子 (イオンと電荷)の割り付けを行う処理. 1-2. [1] Shinatora Cho, Kimiya Komurasaki, Yoshihiro Arakawa : ” Kinetic particle simulation of discharge and wall erosion of a Hall thruster ” , (2013) [2] “ Portable, Extensible Toolkit for Scientific Computation ”, http://www.mcs.anl.gov/petsc.. Copyright 2016 Information Processing Society of Japan. All Rights Reserved..

(3)

図 1:NSRU-Full-PIC の処理手順
図 2:粒子数と処理時間の関係  OpenMP などのマルチスレッド化は行われていな い。図 1 内のステップ 4 と 9 では、各粒子の 物理量をグリッドの四隅に割りつける処理が発 生 す る 。 こ の 処 理 は 、 Read-After-Write(RAW)  ハザードを引き起こす典型的な処理で、スレッ ド 並 列 化 を 阻 害 し 、 グ リ ッ ド 内部の粒子の数 (数百個)に応じて計算負荷が爆発的に高くな る。加えて、粒子の持つ物理量には浮動小数点 型が用いられており、計算順序によって結果が

参照

関連したドキュメント

しかし何かを不思議だと思うことは勉強をする最も良い動機だと思うので,興味を 持たれた方は以下の文献リストなどを参考に各自理解を深められたい.少しだけ案

実際, クラス C の多様体については, ここでは 詳細には述べないが, 代数 reduction をはじめ類似のいくつかの方法を 組み合わせてその構造を組織的に研究することができる

「欲求とはけっしてある特定のモノへの欲求で はなくて、差異への欲求(社会的な意味への 欲望)であることを認めるなら、完全な満足な どというものは存在しない

(注)ゲートウェイ接続( SMTP 双方向または SMTP/POP3 処理方式)の配下で NACCS

2 次元 FEM 解析モデルを添図 2-1 に示す。なお,2 次元 FEM 解析モデルには,地震 観測時点の建屋の質量状態を反映させる。.

外航海運向けの船舶を建造、あるいは修繕できる能力と規模を持つ造船所としては、マレ ーシア海洋重工( Malaysia Marine and Heavy Engineering :MMHE, 元の Malaysia

ミャンマーの造船 所の形 態は大きくは 3 つに分 類できる。一つは外航 船建造可能 な造船所 と 位置づ けされた“ Myanma Shipyards” 、二つ 目は内航船建造・ 修繕 を目的の

解析実行からの流れで遷移した場合、直前の解析を元に全ての必要なパスがセットされた状態になりま