液滴衝突(スプラッシュ)の数値的研究
Numerical Studies of Droplet Impacts (Splashes)
肖 鋒 (東京工業大学)
Feng Xiao
大規模な2相流の計算を行うためのコード開発
※年度当初の研究計画を全て達成した場合を100%として数値で示してください. 複数の目標があった場合は, それぞれについて達成度を数値で示してください.
全体 30%
※計画的に計算機資源を利用できているか, 状況を記載してください.
主に計算コードの最適化の検証に資源を活用している. 出来る限りの最適化をした段階で, 計算資源を最大限に活用する予定である.
※ベクトル化, 並列化チューニング等, 計算機資源を有効利用するために行ったこととその効果を記載してください.
ポアソンソルバーをTF-BiCGSTAB(反復法の数理に付属していたASLのライブラリ)から自作のMG-BiCGSTABに変更した. 以前使用していた. MG(マルチグリッド)を使わない方法では, 計算コストがメッシュ数の2乗程度のオーダーで増大し, 事実上大規模計算には使うことが出来ない. MG-BiCGSTABでは計算コストはメッシュ数にほぼ比例し, 大規模な計算になるほど有利となる. また私の使っていたTF-BiCGSTABのコードではバンクコンフリクトが多発していたが, この改良により, バンクコンフリクトも大幅に減少した. 直交格子を使用しているため, 係数マトリクスがほぼ定数となるため, Aマトリクスを陽的に定義しないことにより, CPU-メモリー間の通信およびメモリー使用量を最低限に抑えることが出来た. ベクトル化率は99%以上をキープしている.
MPIによる並列化はまだ行っていないが, 単純な直交格子を使っているため並列化自体は容易であり, 3月までには完了できると考えている. 現状これまで大規模計算に自然に拡張できるシリアルコード(OpenMP)の開発に集中した. また現在のポアソンソルバーはMGのスムーサーをヤコビ法からSORや ILUに変更することにより少なくともあと5-6倍程度計算を加速できる可能性がある.
ベクトル並列化されているポアソンソルバーをどこかから調達できると考えていたが, それが出来なかったため, 自力で開発することになり想定外の時間がかかった.