オブジェクト指向とMPI通信による新しいプラズマ粒子シミュレーションコードの開発 と実装
*上岡 功治[1], 村田 健史[1], 上田 裕子[2]
岡田 雅樹[3], 臼井 英之[4], 大村 善治[4], 松本 紘[4]
愛媛大学工学部情報工学科[1]
宇宙開発事業団技術研究本部システム解析ソフトウェア研究開発センター[2]
国立極地研究所情報科学センター[3]
京都大学宙空電波研究センター[4]
Development and mounting of new plasma particle simulation code by object-oriented and MPI communication
*Koji Ueoka[1]
,Takeshi Murata [1],Hiroko Ueda [2]
Masaki Okada [3],Hideyuki Usui [4],Yoshiharu Omura [4]
Hiroshi Matsumoto [4]
Faculty of Engineering, Ehime University[1]
NASDA System Analysis and Software Laboratory[2]
Infomation Science Center, National Institute of Polor Region[3]
Radio Science Center for Space and Atmosphere, Kyoto University[4]
Plasma computer simulations play a crucial role in studies of
a variety of plasma phenomena We construct a new plasma particle
simulation code via object-oriented methodology; POM::KEMPO code.The
POM::KEMPO code is of great advantage to the previous codes implemented
in procedure- oriented language in extendibility, maintainability,
and reuse. However, it has the disadvantage in calculation time;
it takes about 4 times longer time than the samecode implemented
in Fortran. We attempt to overcome this problem introducing a
parallel computing method. Herein we adopt the MPI(Message Passing
Interface), which is now one of the standard libraries of parallel
computation.
現在、プラズマ計算機シミュレーションは、宇宙プラズマ現象、核融合
プラズマの制御、プロセスプラズマなどの研究に活用されている。これら
のシミュレーションコードは、主に、FortanやCなどの手続き型言語で記
述されてきた。したがって、コードの再利用性、保守性、拡張性などが低
いという問題点があった。手続き型言語で記述されたプログラムは、局所
的な変更を行うことにより、全体に影響が及ぶことが多いからである。コ
ードの変更のためには、コード細部までを完全に把握していなければなら
ず、コード開発者以外の利用は、困難である。一方、オブジェクト指向言
語によるプログラムは、手続き型言語によるプログラムに比べて、一般
に、計算速度が遅いという欠点がある。本研究では、オブジェクト指向開
発技法により、拡張性、保守性、再利用性に優れた、新たなプラズマ粒子
シミュレーションコードの設計をおこなった。設計は、Fortranにより記
述されたKEMPOコードをもとに、オブジェクト指向開発技法により行っ
た。さらに、オブジェクト指向言語の一つであるC++言語を用いて、実装
を行い、POM::KEMPOコードと名付けた。 講演では、まず、開発を行った
コードを紹介し、その利点について議論する。特にコードの改良、再利用
性、共同開発などについて、どのようにオブジェクト指向コードが有効に
利用できるかについて、内部境界条件や外部境界条件の変更、異なる領域
の接合など、具体的な例を挙げて紹介する。
開発したオブジェクト指向プラズマコードとKEMPOコードや、C言語によ
るKEMPOコードの処理速度を比較したところ、それぞれ、約56%、73%程度
の処理速度の低下が見られた。処理速度の低下は、今後、予想される大規
模計算機シミュレーションを考えると、深刻な問題となる本研究では、
POM::KEMPOの計算処理速度の問題を、並列計算機を使用することによって
解決する。近年、大規模計算機シミュレーションは、一般に、大型並列計
算機を使用して行なわれる。本研究では、POM::KEMPOコードを、並列計算
で標準的に用いられる通信ライブラリであるMPI(Message Passing Interface)を実装することにより、並列化を行った。実装では、まず、
プラズマ粒子シミュレーションに有効な並列化モデルを検討した。その結
果、計算目的に応じて、領域分割法とハイブリッド分割法を使い分けるこ
とが有効であることが分かった。領域分割法は、全計算領域をプロセス数
によって分割し、境界値をプロセス間で交換する手法である。ハイブリッ
ド分割法は、われわれが新しく提案する手法であり、電磁場計算を空間分
割法により行い、粒子計算をデータ分割法に行う。ハイブリッド分割法
は、空間分割法と比較して、プロセス間通信量が大きいという欠点があ
る。しかし、コーディングが容易であり、また、粒子数が増えるほど速度
向上率が上昇する利点がある。(図は、グリッドあたりの粒子数を160、
320、640とした場合の、速度向上率である。)また、オブジェクト指向コ
ードのように、計算処理速度が遅いコードでは、相対的に通信時間が少な
くなるため、ハイブリッド分割法は有効である。発表では、まず、並列計
算機におけるMPI通信の通信速度特性について、富士通AP3000と日立
SR8000についてのベンチマーク結果を報告する。さらに両分割法の速度向
上率を比較し、それらの特長まとめる。