AMR-PICコード開発のポイント(Ref. Fujimoto, JCP, vol.230, 8508, 2011)藤本 桂三

理化学研究所 計算宇宙物理研究室

発表内容
 開発の動機、戦略
 AMR-PICコードの開発
 応用例（磁気リコネクション）
 まとめ

開発の動機、戦略磁気リコネクションとそのマルチスケール性
i ~ 1(Magnetohydrodynamics)(Particle-In-Cell)

MHD（流体）Full PIC（粒子）磁気拡散 ホール効果

∬

トポロジー

De

e, ei, i

L

1km

10km

103km

105km

Lc

Coulomb mean
free path

108km

Coroniti [1985]

陽的PICスキームの制約と電流層プロファイル
Bx = -B0 tanh(z/)n = n0 sech2(z/)+nb

格子点間隔 x ≲ 3De
電流層中心付近
De ≈ 3 102 m

磁場支配領域
De ≈ 6 103 m物理的に要求される解像度

電子スケールの構造

適合細分化格子（AMR）の適用
AMR(Adaptive Mesh Refinement)

適合細分化格子

粒子分割・統合AMR-PIC Simulations

AMR-PICコードの開発

AMRの使用例
 多階層格子を偏微分方程式系に適用
Berger and Oliger (1984), Berger and Colella (1989)
 MHD + AMR
Groth et al. (2000), Toth et al. (2012) (U Michigan)
 PIC + AMR (N-body code)
Villumsen (1989), Kravtsov et al. (1997), Yahagi and Yoshii(2001)
 ElectroStaticPIC + AMR Vay et al. (2004), Colella et al.(2010)
 ElectroMagneticPIC + AMR
Vay et al. (2004?), Fujimoto & Machida (2006),Fujimoto (2011)

開発履歴[Fujimoto & Machida, 2006; Fujimoto & Sydora, 2008,
Fujimoto, 2011]

2003

2006

開発スタート

2D AMR-PIC
コード完成
ポアソン方程式
ノード内並列CPU数、メモリ容量の制約

2008

2011

3D AMR-PIC
コード完成

超並列AMR-PIC
コード完成• 電荷保存法• 適合ブロック法

より多くの計算機資源が利用可能！

電磁粒子(EMPIC)コード[Birdsall and Langdon, IOP, 1991]

S: Shape function
超粒子（Buneman-Boris法）

電磁場（Yee-Bunemanスキーム）

電荷保存法[Villasenor & Buneman,1992]

Staggering Grid Scheme [Yee, 1966; Buneman, 1968]
C’Ex CBx

 電磁フラックスが厳格に保存 電磁波に対する数値散逸なし

von Neumannの安定解析

AMRの適用：データ構造
Similar to a fully
threaded tree
(FTT) structure(Khokhlov, 1998).

[Fujimoto & Machida, JCP, 2006]

AMRの適用：階層間同期
細分化格子の解がより高精度（アンペールの式を満たす）（ファラデーの式を満たす）

AMRの適用：電磁場のスムージング

ESM=fSM(E)
BSM=fSM(B)超粒子の分割・統合 [Lapenta, JCP, 2002]
分割前後で保存させる
格子点上のモーメント（c, J）、全電荷・質量（c, m）、粒子の全エネルギー（mv2/2）、粒子の分布関数（f(v)）

２次元の場合３次元の場合q1 = q2; m1 = m2
x0 = (x1 + x2)/2
V0 = (V1 + V2)/2
q0 = q1 + q2; m0 = m1 + m2

x, y, z

分散並列化：問題点
８ノード並列の例

PICシミュレーションでは全計算時間の99％以上を粒子に関する計算に要する。

ノード当たり粒子数の不均衡性

適合ブロック法（その１）（ブロック： 並列計算において各ノードが分担する計算領域）
全計算領域の基底オクト（グローバルオクト）を最適な順番に並べ替える。
出発点から数えて(xoct, yoct, zoct)番目にあるオクトの順番

 初期に1度だけ実施
 この順番に沿って粒子数を数え、各ノード（ブロック）の粒子数が均等になるように基底オクトを分割する。
ブロックの表面積を小さくし、通信量を減らす。

適合ブロック法（その２）バッファ領域とプライベートオクトの生成

バッファブ領域
プライベートオクト
各ノードで個別に設定

グローバルオクト
すべてのノードでシェア
grank: ノード番号
gOctNb: 隣接するオクト

pOct
iPr

rank: ノード番号
iNb: 隣接するオクトの親セル

ipr: 親セル
OctCh: 子オクト・・・
物理データ

適合ブロックを用いたシミュレーション
８ノード並列の例
ノード当たり粒子数の不均衡性

超並列AMR-PICコードの性能
Fujitsu FX1（名大情報基盤センター）
ノード
ＣＰＵ（４コア）

ＣＰＵ
（４コア）

メモリ
（32G）

メモリ（32G）

ＣＰＵ
（４コア）

ＣＰＵ
（４コア）

メモリ（32G）

メモリ
（32G）

並列化率：99.8%応用例（磁気リコネクション）

Simulation Setup
Fujitsu FX1, 1024 cores
Bx = -B0 tanh(z/)Jy = -J0 sech2(z/)81 imi/me = 100
Max resolution:
4096×512×4096 ~ 1010
Max number of particles
Ion + Electron ~ 1011

10i ~ 1Re

81i ~ 10Re

Max memory used ~ 6TB

Time Evolution of the Current Sheet
Surface: |J|, Line: Field line
Color on the surface: Ey, Cut plane：Jy

Wave Number Spectrum|Ve |ZYWave-Particle Interactions
3D reconnection

2D reconnection

Anomalous effects
φVe

ES turb.

zVe

EM turb.

Bx

EM vs. ES Turbulence Effects
EM Turbulence

ES Turbulence

まとめ
AMR-PICコード開発のポイント
1. 細分化レベル間の同期（電磁波動の分散性を保持）
2. 電磁場のスムージング（短波長モードの除去）
3. データ構造（ツリー構造が便利）
4. 粒子分割・統合（格子当たりの粒子数調節）
5. あきらめずにコツコツやる。

今後の課題 超並列２次元AMR-PICコードの開発
 開放境界条件
 粒子データのソーティング
 逐次計算効率の向上
 適合ブロック法の改良
 数千コア並列以上の場合における最適化
 ソースコードの公開 マニュアルの作成
 ユーザの拡大・・・