1 核融合プラズマシミュレーション でのFortranの活用 名古屋大学理学研究科 渡邉智彦 アンケートの実施において、物理学会領域2、天文学会、地球電 磁気・地球惑星圏学会、プラズマ・核融合学会、はじめ多くの 皆様のご協力をいただきました。この場をお借りして感謝申し 上げます。ありがとうございました。 2015/08/18 並列Fortran研究会@AICS, 神戸 2 アウトライン はじめに 磁気核融合プラズマの数値解析 磁場閉じ込め核融合研究でどんな計算をやっているか 物理モデルと計算モデル、プログラミング・モデル Fortranの利用に関するアンケート 物理学会領域2、天文学会、地球電磁気・地球惑星圏学会、 はじめ多くの皆様のご協力をいただきました。ありがとう ございました。 おわりに Fortran に望むこと、まとめ 2015/08/18 並列Fortran研究会@AICS, 神戸 3 はじめに 2015/08/18 並列Fortran研究会@AICS, 神戸 4 自己紹介 典型的な(あまり優秀でない)中高年Fortranユーザーのサン プルとして 大学: Melcom, IBM, ACOS FORTRAN77を講義で学ぶも… 卒業研究で粒子コード 大学院:SX-2, VP200, VP400 FORTRAN77、ベクトル化、粒子・流体シミュレーション 核融合研(初期):SX-3, SX-4, SX-5 FORTRAN77、ベクトル化、自動並列化(32PE) 核融合研(中期):SX-7, 地球シミュレータ, XT-4, SR8000 FORTRAN90、ベクトル化、自動並列化、MPI並列化 核融合研(後期):SR16000, Helios (Bull) FORTRAN90/95、自動並列化、OpenMP、MPI並列化 現在:京, FX10/100 FORTRAN90/95、自動並列化、OpenMP、MPI並列化 2015/08/18 並列Fortran研究会@AICS, 神戸 5 磁気核融合プラズマ研究 磁場で1億度におよぶ高温プラズマを閉じ込め、核融合 反応を発生させることを目指す コイルでドーナツ(トーラス)形状の磁場を形成 トカマク型(ITER, JT60など)、ヘリカル型(LHD) 乱流による熱や粒子の輸送が発生 閉じ込め性能を悪化させる要因 実験計測、理論予測の困難 計算機シミュレーションによる研究 実効性の高いシミュレーションをどう実現するか? 核融合プラズマの理論研究において極めて重要 2015/08/18 並列Fortran研究会@AICS, 神戸 6 計算環境とモデルの変化 計算環境とモデルは異なるスピードで発展 ハードウェア (プロセッサ、メモリ、通信等) ソフトウェア (コンパイラ、ライブラリ等) プログラム言語 アプリケーション (コーディング) 計算手法・モデル 最適化では、各拘束条件 の下、その時点で最も満 足できる解を探す プログラム言語の進化は、 異なる時定数をもつシス 物理モデル テムとユーザ間を媒介 物理モデルの進化は、緩やかだがその効果は劇的 2015/08/18 並列Fortran研究会@AICS, 神戸 7 磁気核融合プラズマの数値解析 2015/08/18 並列Fortran研究会@AICS, 神戸 磁気核融合プラズマの数値計算と 物理モデルの変遷 1960-70年代 プラズマ波動の線形分散関係、平衡配位計算、線形安定性 1980-90年代 大規模計算機を使った非線形現象の数値シミュレーション 3次元流体(MHD)シミュレーション、粒子シミュレーション 2000年代以降 MPIでの分散並列を使った数値シミュレーション プラズマ乱流の運動論的シミュレーション 5次元位相空間上の「流体」計算 核融合分野で大半の計算資源を消費 約20年毎に研究対象となる物理モデルが進化 必要となる数値計算もそれに応じて大きく変化 2015/08/18 並列Fortran研究会@AICS, 神戸 8 プラズマ乱流のジャイロ運動論的 シミュレーション 5次元位相空間上での分布関数の時間発展を追跡 GKVコードを開発 粒子運動と流体運動を包摂 プラズマ閉じ込め性能予測へ 京でのマルチスケール乱流計算 格子点数 約1000億 2成分系 30万時間ステップ K 12,288 nodes (98,304 cores) で120時間 100万コア規模まで良好な並列性能 2015/08/18 Maeyama et al. PRL (2015); ibid, Parallel Comput. (2015) 並列Fortran研究会@AICS, 神戸 9 10 GKVの物理モデルと計算モデル 非線形移流拡散方程式(静電的ジャイロ運動論的方程式) ⌢ ⌢ &∂ ( + v||b + v d ⋅ ∇ − µ b ⋅ ∇Ω ' ∂t ( ) ( ) ⌢ e∇ψ )! c ! FM + C f!s + fs + {ψ, fs } = v* − v d − v||b ⋅ * B0 Ts ( ) ( ) 2次元移流項:スペクトル法(多重FFT)、転置通信 他の3次元:差分、ステンシル計算、1対1通信(袖通信) 速度空間上の積分には、リダクション演算 粒子種でも分散並列化、多様な通信パターン、コミュニケータ master threadでノード間通信処理し、演算とのoverlap 倍精度複素数演算、5次元の巨大配列 fs(10242x64x96x16) 大規模計算を高速に実行したい(可視化はポスト処理) 2015/08/18 並列Fortran研究会@AICS, 神戸 11 GKVのプログラミング・モデル Fortran 90/95によるmoduleを利用 構造化、変数/サブルーチンのviewを明確化 public変数はパラメータとしてのみ利用 モジュールの切り替えで計算モデルを変更 並列化の現状とこれまで 現行バージョンでは、OpenMPとMPIのハイブリッド 演算/通信のoverlapとコードのportabilityのため 2000年代には、コンパイラによる自動並列化とMPIのハイブ リッドが高性能で実現していた 数行の指示行のみで8~16 thread程度まで良好な性能 米国でOpenMPとのハイブリッド並列化を議論(2010年頃) 2000年代にHPFを試用も … 2015/08/18 並列Fortran研究会@AICS, 神戸 12 Fortranの利用に関する アンケート 2015/08/18 並列Fortran研究会@AICS, 神戸 13 アンケートの主旨 科学技術計算で広く使われて来たFortranですが、大学の講義で教 えられることもなくなり、年々、利用者は減っていると思われま す。「絶滅危惧種」とも揶揄されますが、大規模シミュレーショ ンでは、今も多くのユーザーが利用しているのではないでしょう か(かくいう私もその一人です)。このアンケート調査は、数値計 算でプログラミング言語を利用するユーザーの声を集め、Fortran の現状と展望を語るための貴重な意見として役立てたい、という ものです。いただいた回答は統計データとして、「並列Fortranに 関するシンポジウム」 http://site.hpfpc.org/home/events/parallel_fortran_sympo で紹 介させていただきます。ご趣旨を理解いただき、是非、よろしく ご協力の程、お願いいたします。 8月4日呼びかけ => 物理学会領域2、天文学会、地球電磁気・地球 惑星圏学会、プラズマ・核融合学会 ML 8月12日〆切 回答総数394 ご協力ありがとうございました! 2015/08/18 並列Fortran研究会@AICS, 神戸 14 アンケートへの回答 (1) 50歳代 20歳代 以上 以下 20% 21% Q1: 年齢層別のデータを得 るため、あなたの年代を 教えてください。 Q2:科学計算にどんなプロ グラミング言語を使いま すか?(複数回答可) 50歳代以上 C, C++; 32 Fortran; 120 20歳代以下 10% 20% 30% その他; 27 C, C++; 45 Fortran; 80 0% その他; 19 40% Fortran C, C++ Fortran; 105 30歳代 2015/08/18 C, C++; 16 Fortran; 75 40歳代 30歳代 31% 40歳代 28% C, C++; 19 50% 60% 70% その他; 33 Python MATLAB その他 Python; 15 80% その他; 18 90% 100% 並列Fortran研究会@AICS, 神戸 15 アンケートへの回答 (2) Q3: Fortranをどこでマスターしましたか? 50歳代以上 講義・演習; 38 40歳代 研究室; 18 講義・演習; 48 研究室; 32 講義・演習 自習・独習 研究室 自習・独習 講習会等 30歳代 講義・演習; 39 20歳代以下 研究室; 48 講義・演習; 31 0% 10% 20% 30% 研究室; 31 40% 50% 60% 70% 自習・独習 自習・独習 自習・ マスター 独習 していない マスターしてい ない 80% 90% 100% Q4: Fortranはどのバージョンを使っていますか? 50歳代以上 Fortran 90/95; 45 40歳代 Fortran 90/95; 75 30歳代 20歳代以下 0% 2015/08/18 FORTRAN 77; 28 10% 20% 30% Fortran 2008 Fortran 2003 FORTRAN 77; 23 Fortran 90/95 Fortran 90/95; 100 FORTRAN 77 Fortran 90/95; 68 使っていない 40% 50% 60% FORTRAN 70% 80% 90% 100% 並列Fortran研究会@AICS, 神戸 16 アンケートへの回答 (3) Q5: Fortranを今後も使いますか? 50歳代以上 ずっと使う; 53 40歳代 ずっと使う; 90 30歳代 ずっと使う; 101 20歳代以下 時々使う 時々使う; 16 時々使う; 19 ずっと使う; 53 0% 10% 20% 30% 40% ずっと使う 時々使う; 22 時々使う; 26 50% 60% 70% 80% 90% 100% Q6: Fortranを使う用途は何ですか? 50歳代以上 大規模数値計算・シミュ レーション(並列化); 23 大規模数値計算・シミュ レーション(並列化); 50 40歳代 大規模数値計算・シミュ レーション(並列化); 31 20歳代以下 0% 10% 20% 30% 数値計算・シミュレー ション(非並列化); 30 数値計算・シミュレー ション(非並列化); 18 40% 50% 大規模数値計 算・シミュレー ション(並列化) 数値計算・シ ミュレーション (非並列化) 数値データ解析 数値データ解析; 18 数値計算・シミュレー ション(非並列化); 36 大規模数値計算・シミュ レーション(並列化); 65 30歳代 2015/08/18 数値計算・シミュレー ション(非並列化); 35 新たに使ってみ たい 他の言語に乗り 換えるつもり 今後も使わない 数値データ 解析; 20 数値データ 解析; 25 使わない 数値データ解析; 31 その他 60% 70% 80% 90% 100% 並列Fortran研究会@AICS, 神戸 17 アンケートへの回答 (4) Q7: Fortranでは主にどのような並列化を行っていますか? MPIとOpen MP; 11 50歳代 30歳代 20歳代 MPIと自動 並列; 17 MPIのみ; 12 MPIとOpenMP; 40 MPIとOpen MP; 10 0% 10% 並列計算は 行っていない; 29 自動並列のみ; 17 MPIとOpenMP; 21 40歳代 MPIのみ; 11 20% 30% 自動並列のみ; 21 MPIのみ; 24 OpenMP のみ; 11 40% MPIとOpenMP並列化のハ イブリッド 並列計算は 行っていない; 31 OpenMP 自動並列 並列計算は のみ; 13 のみ; 14 行っていない; 23 自動並列 のみ; 11 50% Coarray 等のFortranでの 並列化 並列計算は 行っていない; 35 60% 70% 80% 90% MPIとコンパイラによる自 動並列化のハイブリッド MPI並列化のみ OpenMP並列化のみ 100% コンパイラによる自動並 列化のみ 並列計算は行っていない 結果の簡単なまとめ 講義や演習、研究室での修得が多い Fortran 90/95が最も普及。2003以降の利用は少数 今後もFortranへの需要は高い。特にシミュレーション 並列化にはMPIが普及も、未対応も4割程度 Q5, Q6, Q7に相関がありそう 2015/08/18 並列Fortran研究会@AICS, 神戸 18 アンケートへの回答 (5) Q8: Fortranを使う理由、または使わない理由を教えてくだ さい。 (回答多数のため抜粋) コードやライブラリの資産がある。周りで使っている [113] 簡単で使いやすい。慣れている。他に知らない [99] コンパイラによる最適化が充実。計算が高速 配列やメモリの使用が簡単 複素倍精度や多倍長変数が簡単に使える 科学計算に向いている 必要性を感じない。CやPythonが便利 I/Oが不便 Fortranを使えても、就職後、開発現場に配置されない 2015/08/18 並列Fortran研究会@AICS, 神戸 19 アンケートへの回答 (6) Q8: Fortran言語とそのコンパイラ、並列化プリプロセッ サーなどについて、改善して欲しい点や要望等をお聞かせ ください。 (回答多数のため抜粋) 今後もFortran環境を維持して欲しい。複雑になりすぎずに 初学者向け資料整備・教育、2003以降の日本語でのテキスト プロファイラ、デバッガ、開発環境の整備 他言語への翻訳ツール 自動並列化性能の強化、メニーコア向けの最適化 コンパイル・オプションの共通化 現代的なプロセッサの性能を生かせる言語仕様に Fortran という名前の印象が良くないのでは … … 2015/08/18 並列Fortran研究会@AICS, 神戸 20 おわりに 2015/08/18 並列Fortran研究会@AICS, 神戸 21 Fortranに望むこと、個人的嗜好 以下は個人的な意見 従来のプログラム資産を活用できる環境は、やはり必要 一方、過去と決別した言語仕様のサブセットは可能? 抽象的ですが、よりモダンなスタイルをとりつつも数値計算の 目的に特化 当面、大規模な分散並列はMPIでよいのでは? メニーコアに対応した自動並列化機能の強化・指示行の共 通化(OpenMPを部分的に使うのも可) 分散並列を使わないlight userにも、簡便に並列化の恩恵を受け られるように。日本のコンパイラ技術の蓄積を生かす道 多重ループの自動並列化 (Fortran 2008 do concurrent で対応?) Fortran 2003/2008 をいつから使い始めるか… Fortran 90 も使い始めるまで10年以上。いよいよこれからか!? 2015/08/18 並列Fortran研究会@AICS, 神戸 22 まとめ 磁気核融合プラズマの大規模シミュレーションにおいて Fortran 90/95 を活用 + MPI + OpenMP Fortran 90/95 を利用した数値計算は、科学研究におい て、いまだ極めて重要 高速な数値計算の需要は今後も高い コンパイラ最適化・自動並列化、開発環境へ多くの要望 絶滅危惧種にしないために … 普及につながる活動が必要 新たに習得するためのインセンティブをどう示せるか 負のスパイラルに落ちないようベンダーのサポートも重要 2015/08/18 並列Fortran研究会@AICS, 神戸
© Copyright 2024 ExpyDoc