発表要旨
1. プロジェクトの目的
2004年末におけるインド洋大津波における衝撃的な波力による構造物(防御施設や家屋)の破壊メカニズムの解明にあたり,当該研究所で所有する世界最大規模の津波実験水路を用いて実験を行っているが,津波が陸域に氾濫する挙動やそれによる被害は,その地域の地形や土地利用形態などに大きく依存するため,日本全体で安全・安心を実現するためには各地域に直結した防災を行う必要がある.そのような被害を予測することは,実験水槽の規模で行うことができないため,数値シミュレーションとの連携が必要不可欠である.
そこで,本研究プロジェクトにおいて,ある特定の地震津波をターゲットとし,巨大津波による構造物の破壊被害・土砂輸送被害を,沿岸部全体で数値シミュレーションすることを目標として,3カ年計画で研究を行うものとする.
2. 今年度当初の計画
初年度は,大規模実験水路で行われた実験の再現を行う.計算は流体計算のみを取り扱い,津波による衝撃波圧の再現を行う.数値計算手法としては,VOF法を用いた計算を行い,その基本となるコードの開発に従事した.しかし,津波による最大衝撃力を再現するためには,津波高さの1/50の格子サイズが必要であることから,当該実験水路を再現するためには,平均2cm格子(約15億格子,600GBのメモリ)で計算できる環境を作る必要がある.現状の基本コードにおける並列化率は,1ノード(8CPU)で99.00%であるために,15億格子の計算を効率的に行うためには,36ノード程度必要となるため,最低でも,99.95%以上とする必要がある.そこで,初年度としては,並列化率を向上し,所定の99.95%を実現するとともに,実験結果と比較しその妥当性を検証するとともに,実験では得られない詳細な流体内部の構造を明らかにし,衝撃的な破壊力の解明を行うものとする.
3. 今年度得られた成果
本年度の第1目標である36ノード以上の並列化を実行するため,プログラム性能の把握,最適化作業を実施した.
本プロジェクトで開発しているコード(CADMAS-SURF/3D-ES)は,3次元で波浪解析を行うためのプログラムである.海岸域における波浪場の解析では,海底斜面や透過性消波構造物等の複雑な形状を取り扱えることが必須となる.このため,CADMAS-SURF/3D-ESの基礎方程式には,3次元非圧縮性粘性流体を対象とした連続式およびNavier-Stokes方程式をポーラスモデルに基づいて拡張した式を用いている.また,自由表面モデルとしては,汎用性が高く,複雑な表面形状を解析可能であるVOF法を用いた.
数値解法としては,SMAC法を用い,SMAC法のなかでのポテンシャル関数に関する非対称の連立1次方程式の解法が全計算時間の多く(7割から9割以上)を占め,かつ,連続の式の精度を通じてスカラー量の保存を大きく左右する.特に.VOF法においてはVOF関数F値の保存則の精度を保つことが,計算体系の全水量を保つことと同意であるため重要となる.そこで,CADMAS-SURF/3D-ESでは,非対称の連立1次方程式の解法として収束性および安定性に優れた前処理付きBCGSTAB法を用いた.よって,この第一目標をクリアするためには,この行列式を効率良く解くことができるようにすることが重要なポイントなる.
検証データとして1億格子(x方向1000格子×y方向1000格子×z方向100格子)を用いて行った.地球シミュレータのS系ノードを使用し,8プロセスで実行を行った.その結果,BCGSTAB法の前処理行列に関する解法サブルーチンにおいて,ベクトル化を阻害する依存関係があることがわかり,ベクトル化が抑止され,スカラー処理されておりベクトル演算率が0%のものがあることがわかった.このサブルーチンは全体の53%の演算時間を使用しているため,大きな問題である.
そこで,本問題を解決するために,平面法(HyperPlane Method)を用いて,ベクトル化を阻害する依存関係の解消を試みた.その他のサブルーチンにおいても処理を実施したところ,並列化率は,99.65%まで向上した.しかし,まだ,これでは,40ノードで50%の並列化効率を満たすことができないため,x方向の分割数が256を超えない条件でベクトル化するように指示行を与え,99.71%まで向上させることにより,40ノードで50%以上の並列効率を達成した.それにより,約1.5憶格子数を用いたケースで,1stepあたり約8秒で計算できるようになった.計算時間間隔は平均的に10-4s程度であるので,およそ実時間の10万倍で計算することとなる.そうすると30sの計算を行うのに,約34日かかることとなるため,さらなる最適化が望まれる.
第2の目標である実験との比較であるが,これは現在データを作成中であり,未だ結果が得られていない.