オブジェクト指向言語C++を用いた3次元流体解析プログラムの開発
並列分散システムパフォーマンスつくば研究室
室長 佐藤 三久
並列分散システムパフォーマンスつくば研究室では、オブジェクト指向言語C++を用いた3次元流体解析プログラムを試作し、SC'97において、RWC PC
クラスタ上でデモを行いました。このプログラムは液体や気体の流れをシミュレーションし、流体の圧力や流速などを調べることができるものです。SC'97のデモにおいては、実際にシミュレーションの時間ステップごとに、計算とそのシミュレーション結果の可視化を同時に行い、実際のアプリケーションを通じてのPC
クラスタの性能をアピールしました。
流体解析は膨大な計算性能が要求される分野であり、並列処理による高性能化が期待されています。この研究開発の目的は、重要かつ典型的な並列分散の応用である流体解析をワークロードとして性能解析や並列プログラミングの研究を行うことにありました。開発したプログラムは、3次元非圧縮粘性流体解析プログラムです。基礎方程式は連続の式(質量保存式)、運動方程式(ナビアストークス方程式)およびエネルギ保存式であり、複雑な形状にも対応するために離散化は8節点アイソパラメトリック要素を使った有限要素法を採用しています。3次精度風上差分に相当する精度のスキームを用いており、時間積分のアルゴリズムとしてすでに確立されているSMAC法を用いました。並列化を容易にするために、連立一次方程式の解法部にはSCG法を用いました。
このプログラムはC++で開発を行いました。本研究室では、オブジェクト指向技術を今後の並列化プログラミングにおいて重要な技術と位置付けています。並列環境において、オブジェクト技術は繁雑な並列プログラミングをユーザから隠蔽し、並列プログラミングを容易にすることを目指しています。本プログラムの開発の目的の一つは、そのケーススタディにすることでした。通常の逐次処理においても、数値計算において物理的なモデルを扱う場合、3次元の座標やベクトル等をオブジェクト化しておくことにより、通常の数学的な記述に近いプログラミングができる利点があります。有限要素法においては、有限要素や節点などのデータ構造がありますが、このレベルのデータ構造でのオブジェクト化はむしろオーバーヘッドが大きいといえます。並列プログラミングのためには、そのようなデータ構造全体を一つのオブジェクトとして、各隣接要素の積分計算や方程式解法に必要な行列ベクトル積などの共通性の高い集合操作が有効であることが分かりました。
本プログラムの通信ライブラリはMPIであり、PCクラスタの他、SMPクラスタCOMPaS、SR2201で稼働します。現在の性能は、円柱周りの流れ5120要素のシミュレーションを行うのに、SR2201
64PEで0.35秒/ステップです。今回試作したプログラムは、FORTRANで書いたものに比べて、2倍ほど遅いなどの問題点が明らかになっており、オブジェクトの設計の見直し等、プログラムの性能改善を現在進めています。
SC'97のデモに向けて、2次元の簡単な可視化システムを開発し、計算と同時に可視化を行うことのできる環境を構築しました(図1)。これにより、5000節点程度のシミュレーションであれば、対話的に計算させながら現象を追跡することができます。
図1 emflowの可視化された流れの様子(円柱周りの流れ)
現在、つくば研究センタの並列分散各研究室では、PCクラスタを始めとして、次世代LANによるシームレス並列分散システムの研究開発を行っています。このシステムでは、研究室やオフィスにある手持ちのパソコンやワークステーションを任意に結合し、並列コンピュータとして用いることによって、個人レベルでスーパーコン並の計算資源を提供することが目標の一つです。我々はこのシステムにより、個人のレベルで巨大な計算資源が利用できる、いわば、「パーソナル・スーパーコンピューテング」が可能になると考えています。このようなシステムは、計算資源だけでなく、ワークステーションのような対話性を持っています。流体解析は非常に計算パワーを必要とするため、従来は主にスーパーコンピュータで行われていましたが、そこでは計算と計算の可視化は別々に行われているのが普通です。しかし、個人レベルで出来るようになることによって、計算と同時に対話的可視化を行うシステムが可能になります。SC'97でのデモの目的は、PCクラスタの性能を示すだけでなく、このような「パーソナル・スーパーコンピューテング」の可能性への一歩であると考えています。
また、現在のシステムでは、可視化ができるのは2次元だけですが、シミュレーションは3次元も可能であり、これから、3次元の可視システムやメッシュ生成部などの前処理部を加えて、更に実用的なものにする計画です。
なお、本研究は富士総合研究所(株)の協力を得て開発しました。
|