離散化とスケーラブル解法による大規模計算設計
大規模計算では、離散化が決める誤差構造と、線形/非線形ソルバが決める計算量・通信量が強く結びつく。精度を上げるほど計算が遅くなるという単純な図式を超えて、誤差・安定性・条件数・メモリ帯域・並列分割を同時に設計することが要点である。
参考ドキュメント
- S. Williams et al., Roofline: An Insightful Visual Performance Model for Multicore Architectures (2009)
https://people.eecs.berkeley.edu/~kubitron/cs262a-F13/handouts/papers/roofline-williams-etal.pdf - PETSc User Manual / KSP: Linear System Solvers
https://petsc.org/release/manual/ksp/ - 富岳 利用ガイド(日本語)
https://www.r-ccs.riken.jp/fugaku/users-guide/
1. なぜ「離散化」がボトルネックになるのか
連続場(波動関数、電子密度、応力、磁化、濃度、温度、電磁場など)を格子や要素、基底で有限次元化すると、次の4点が同時に生じる。
- 誤差:連続解
に対し近似解 を得るが、 は不可避である。 - 安定性:時間発展や反復計算が発散しない条件が必要である(特に陽解法)。CFL条件はその代表である。
- 条件数:離散化で得られる連立一次方程式
の条件数が、反復法の収束回数を支配する。大規模化でこれが最重要になることが多い。 - 性能:計算コアのピーク性能より、メモリ帯域・通信・疎行列アクセスが支配的になりやすい。Rooflineモデルはこの状況を可視化する代表的枠組みである。
2. 離散化の基本:どの「枠」で連続場を表現するか
2.1 主要な離散化手法の系統
| 系統 | 代表 | 保存則/境界条件 | 得意領域 | 注意点 |
|---|---|---|---|---|
| 有限差分法 (FDM) | 近傍差分、スタガード格子 | 実装が簡単、規則格子で強い | 拡散、波動、磁化ダイナミクス、電磁場の格子化 | 複雑形状や局所精度に弱い |
| 有限体積法 (FVM) | セル上の保存則、フラックス | 保存則を自然に満たしやすい | 流体、拡散輸送、反応拡散 | フラックス設計が本質である |
| 有限要素法 (FEM) | 弱形式、形状関数 | 複雑形状・異方性材料・多物理連成 | 弾性、電磁、拡散、相場 | 行列組立と前処理が鍵である |
| 不連続Galerkin (DG) | 要素間不連続+数値フラックス | 高次・局所適応・並列相性 | 波動、対流拡散、スペクトル精度 | コスト増、安定化設計が必要である |
| スペクトル/高次要素 | Chebyshev/Legendre, SEM | 高精度(滑らかな解) | 量子/波動/電磁の高精度 | 幾何と境界が難しくなる傾向である |
2.2 誤差の言葉:局所誤差と大域誤差
離散化は一般に
という収束次数
重要なのは、同じ自由度数(DOF)でも、低次で細かく刻むのか、高次で粗く刻むのかで、誤差と性能の支配因子が変わる点である。DG/高次要素はこの選択肢を拡張する。
3. 一貫性・安定性・収束:精度議論の背骨
差分法を例にすると、安定性・一貫性・収束は三位一体で扱われ、線形な初期値問題では「一貫性+安定性 ⇒ 収束」という関係が基礎になる(Lax型の同値性定理の系譜である)。
3.1 CFL条件(陽解法の典型)
移流方程式
の形の条件が出現する。これが破れると、離散的に増幅因子が1を超え、数値解が発散しやすい。CFL条件は差分/体積/一部DGに普遍的に現れる安定性指標である。
3.2 反応拡散・相場・弾性での硬さ
拡散項
4. 離散化が生む連立方程式と条件数の問題
離散化の結果、多くの計算は
や、非線形系
- 拡散/弾性/静電ポテンシャルのような楕円型方程式では、メッシュを細かくすると条件数が悪化し、単純な反復法は収束が遅くなる。
- したがって、反復法(Krylov法)と前処理(PC)の組み合わせが中心戦略となる。
5. スケーラブルソルバ:収束回数を格子サイズに依らせない
5.1 Krylov反復法+前処理
Krylov法(CG, GMRESなど)は、
を解き、固有値分布をまとまった形に圧縮することである。
前処理は「近似逆行列」を作る行為であり、精密さと計算コストの釣り合いが要である。物理的意味に寄せるなら「支配的な結合(長距離/短距離、剛性の強いモード)を優先的に解消する」ことが狙いである。
5.2 マルチグリッド(幾何MG/代数AMG)
楕円型問題では、誤差が「低周波成分」と「高周波成分」に分解して考えられる。平滑化(smoother)で高周波を消し、粗視化格子で低周波を解くのがマルチグリッドの発想である。大規模並列でもスケールしうる代表手法として位置づけられる。
5.3 領域分割
計算領域(Domain Decomposition; DD)をサブドメインに分割し、局所問題と粗視化問題を組み合わせて解く。有限要素/有限体積の大規模並列では、手法論としても並列実装としても中核になることが多い。
6. 時間積分:長時間安定・保存性・サンプリングの観点
6.1 分子動力学(MD)での保存性とシンプレクティック性
MDでは運動方程式がハミルトニアン構造を持ち、長時間のエネルギー挙動が重要になる。そのためVerlet系に代表される可逆・シンプレクティック積分法が広く用いられている。エネルギー保存性(厳密保存ではなく、長時間でのドリフト抑制)が方法論として重要である。
6.2 連続体ダイナミクス(波動・LLG・Maxwell)での安定性
波動・電磁・スピンの時間発展ではCFL制約や分散誤差(数値位相速度のずれ)が支配的になりやすい。高次化は分散誤差に効く一方、安定化と実装コストが増えるため、目的量(スペクトルピーク、減衰率、エネルギー散逸など)を決めて時間積分法を選ぶ設計が必要である。
7. 大規模化(HPC)で支配的になる性能モデルと実装論
7.1 Rooflineモデルで見る計算律速の位置
カーネルの演算強度(operational intensity)を
という形で理解できる。疎行列ベクトル積やステンシルは
7.2 並列の基本設計:MPI+OpenMP
ノード内共有メモリ(OpenMP)とノード間通信(MPI)を組み合わせる設計は、現代の多コアHPCで標準的である。コア配置、NUMA相当の階層、通信の局所性(近接通信を増やす)といった設計が性能を支配する。
7.3 典型的なスケーリング障害と対策
- 強スケーリング限界:問題サイズ固定でコア数だけ増やすと、通信・同期が支配する
対策:粗視化(多重格子)、通信隠蔽、計算粒度の確保、非同期化 - 弱スケーリング限界:局所DOF一定でも、粗視化成分やグローバル還元(dot、norm)が支配する
対策:通信回数を減らすKrylov変種、二段階法、DDの粗視化空間設計 - メモリ容量/帯域:精度を上げてDOFを増やすと、メモリが先に尽きる
対策:行列フリー(matrix-free)、高次要素のテンソル積、混合精度、圧縮表現 - I/O:チェックポイントや巨大出力が律速となる
対策:出力頻度の設計、並列I/O、解析のインサイチュ化(計算中に要約量だけ作る)
8. 離散化選択を物理量の目的に結びつける設計指針
8.1 目的量(Quantity of Interest; QoI)を先に決める
同じ方程式でも、必要な精度は目的量で変わる。
- 平衡構造(エネルギー差、応力、弾性定数)
- 応答関数(スペクトル、共鳴周波数、輸送係数)
- 界面形状(曲率、界面移動速度、核生成頻度)
- ノイズ統計(ゆらぎ、相関時間、パワースペクトル)
QoI(Quantity of Interest)に対して「空間誤差が支配か」「時間誤差が支配か」「統計誤差が支配か」を切り分け、最も支配的な誤差源へ資源を投下する。
8.2 典型例:同じDOFでも効く改善は違う
- 波動・電磁:高次化で分散誤差が下がり、同じ格子数でも位相精度が改善しやすい(ただし安定化設計が必要)
- 拡散・弾性:前処理なしでは反復回数が増えやすく、ソルバ改善(MG/DD)が最優先になりやすい
- MD:刻み幅を下げるだけでなく、保存性やサンプリングの性質を見て積分器を選ぶのが効く
9. 検証と妥当性確認
大規模計算ほど、見かけの「それらしい結果」が危険になりやすい。以下をルーチン化するとよい。
- 製造解法(Method of Manufactured Solutions; MMS):既知解を作り、収束次数
を確認する - メッシュ/時間刻み独立性:
を変えてQoIの変化を追う - 保存則チェック:総エネルギー、発散条件、質量保存など
- 反復収束の記録:残差だけでなく、QoI収束や内外反復の相互作用を点検する
- 並列依存性:プロセス数を変えたときの数値差(非決定性、順序依存)を監視する
まとめ
離散化は誤差と安定性だけでなく、連立方程式の条件数と計算性能(帯域・通信)を同時に規定するため、大規模計算の成否を左右する。高精度化は「格子を細かくする」だけでなく、QoIに合わせた高次化・陰的化・前処理(MG/DD)・性能モデル(Roofline)・ハイブリッド並列の総合設計として実装されるべきである。