本研究ではメニーコア演算器をプラズマ粒子シミュレーションコードへ実装し、演算高速化を実現することを目的としている。これはプラズマ中の荷電粒子を超粒子として扱い、電磁場中の個々の粒子軌道を追跡すると共に、それによって生じる電流場をマクスウェル方程式を介して電磁場へフィードバックすることで、プラズマの運動論的性質を含んだ物理現象を再現する。この計算をメニーコア演算で実現するとともに、ベクトル化およびキャッシュチューニングに配慮したコード開発に挑戦している。 当初の計画としては「非同期転送手法」を用いてノードの大容量メモリ演算を実現することを想定していたが、メニーコア演算器との通信能力が予想を下回ったこと、また最近のXeon Phiがマザーボード上に搭載されたことから、将来的にはメニーコアのメモリ上に情報を留めて演算を行うことが重要であろうと考えている。このため主な演算はメニーコアのメモリ上で閉じるようにし、ノード間並列の際に必要なデータのみをホスト上のメモリへアップロードすることでMPIによるノード間通信を実現出来るような設計で開発を行った。シミュレーションモデル内の並列化手法は、領域分割法を採用し、各領域の電磁場および粒子計算を各ノードが請け負い、領域分割の境界の情報をノード間通信で共有するようにした。各ノードに与えられた電磁場と粒子情報をすべてメニーコアへ与え、ノード間通信に必要な情報のみをホストーデバイス間で通信し、通信にかかる時間を抑えるようにした。 しかしながら、演算高速化が想定より実現されておらず、その要因としては空間に散らばる粒子がさまざまなメモリへアクセスするためメモリアクセスの連続性が失われやすいことにある。空間的に不規則に散らばる粒子をどのように動的にメモリ配置し、連続メモリアクセスを実現するのかが今後の新たな課題となる。
|