10.2  ビジュアル環境で楽々プログラム開発
―大規模シミュレーションの開発支援に新システム―
 


図10-4  可視化デバッガのシステム構成図

システムは、ユーザーインターフェース部、デバッガサーバ、デバッガ、データフォーマットサブシステム、データマージサブシステム、可視化サブシステムの6つのサブシステムから構成されています。ユーザーは対話的にデバッグ作業を進めることができます。


図10-5  風洞中の空気(圧縮性流体)の中に翼がおかれている時に、その翼の周りの流れをシミュレーションするプログラムの可視化デバッガ出力図。色は気体の密度の変化を表します。この例では、翼の上面付近に不自然な密度変化が見られ、プログラムにバグがあることがわかります。


図10-6  上図と同様のシミュレーションプログラムを2種類の計算機(IBM SP, SGI ONIX)で動作させて、出力データの違い(差分データ)を表示したもの。計算の対象としたほとんどすべての点で結果に差異があることを示しています。このような情報を活用することで、異機種計算機へのプログラムの移植やプログラムの並列化作業が効率的に行われます。



プログラムを開発する過程で間違いを見いだして目的のプログラムを完成するためにデバッグという作業が不可欠です。デバッグ作業を支援するためのプログラムをデバッガと呼びますが、従来のデバッガは必要なデータを数値の形で出力するものでした。しかし、大規模なシミュレーションプログラムのデバッグのために出力される膨大な量の数値データを検証することはとても大変なので、数値出力型のデバッガが有効に用いられてきたとはとてもいえません。
私たちはこのような課題を解決するために大規模シミュレーションに不可欠な並列計算用のデバッガ(「並列デバッガ」)と「可視化プログラム」を結合させて新しい機能を盛り込んだ「可視化デバッガ」を開発しました(図10-4)。可視化デバッガと呼ばれるものは今までも有りましたが、これらは行列やベクトルの成分の数値がどのような分布をしているか表示するものでした。
今回開発したデバッガでは、例えば、風洞の中の空気の流れをシミュレーションするプログラムをデバッグする時には、空気の流れの3次元的な図がデバッグデータとして得られます(図10-5)。この結果、膨大な数値を一つずつ検証しなくとも物理的に不自然なところは一目で発見できます。また、別のコンピュータへのプログラムの移植や並列化に当たっては、正しい計算経過からのずれ(差分データ)を可視化表示するだけでデバッグがとても効率的に進みます。可視化デバッガにはこのような機能も含まれています(図10-6)。



参考文献
松田勝之 他,可視化デバッガの改良−データ取得機能の高速化と複数のプログラムの比較,組み合わせ表示機能の開発−,JAERI-Data/Code 2001-003 (2001).

ご覧になりたいトピックは左側の目次よりお選びください。

 



たゆまざる探究の軌跡−研究活動と成果 2001
Copyright(c) 日本原子力研究所