可視化ツールHIVEとSURFACE
理化学研究所計算科学研究機構 可視化技術研究チーム 客員技師 奥健太郎
高性能計算環境(スパコン)が整備され、大規模並列シミュレーションが日常的になると、従来の手法ではシミュレーション結果の可視化が困難になってきます。大規模な計算は、ディスクに大容量かつ多数のファイルを生成するためです。これまで、このようなデータを可視化するには、データを間引いたり、圧縮するなどして、可視化ができる別の計算機上で、汎用可視化アプリケーションを使って可視化をしていました。この方法では、データの縮小処理とコピーには時間がかかる上、せっかく計算した結果を全て見ることができません。また、処理できる並列数も限られているので時間がかかる問題点もありました。そこで、理化学研究所計算科学研究機構 可視化技術研究チームでは、2012年のチーム発足と同時に、「京」コンピュータの上で直接可視化できる可視化システムの設計開発に着手し、ようやくベータ版をリリースできることになりました。
これから数回に分けて、可視化ツールHIVE(コードネーム:KVTools)をご紹介します。今回は、概要と主な機能について説明します。
概要
HIVE(Heterogeneously Integrated Visualanalytic Environment)は、大規模計算結果の効率的な可視化を支援するシステム環境です。
京とローカルな計算機とで協調的に動作し、Webブラウザ環境で可視化対象データのレイアウトや質感などをインタラクティブに調整することができます。また、マルチプラットフォームで動作するスタンドアローンのレンダリングプログラム、HIVE render (hrender) に対応したシーンファイル形式での出力に対応します。
HIVE renderはマルチプラットフォーム対応のSURFACEと呼ばれるレンダラを利用しており、京コンピュータでも動作し、大規模データ並列の可視化プログラムとして動作します。SURFACEはあらゆるプラットフォーム、アーキテクチャに対応し、マルチスレッド、マルチCPUに対応したライブラリです。
HIVEの動作
HIVEは軽量Webサーバーであるnode.js上で動作します。ユーザーはWebブラウザ経由でサーバープログラムにアクセスすることでプログラムを利用する事ができます。
レンダラ
HIVEの内部で利用しているSURFACEとよばれるレンダラは、インターフェースがOpenGLES 2.0 APIに準拠したレイトレーサです。SURFACEはOpenMP、MPIなどに対応しており、複数CPUや複数ノードでのレンダリングをサポートしたレンダラです。また、Webブラウザ環境でのプレビュー用にOpenGLレンダラもサポートしています。
読み込み対応形式
HIVEは、現在(2014年10月)、以下の形式に対応しています。今後、サポートするデータ形式を追加していく予定です。
ポリゴンデータ
- Obj形式
- STL(binary)形式
ボリュームデータ
- SPH形式 理化学研究所VCADシステム研究プログラムで開発した熱流体解析システムで使われているフォーマット。今後、より一般的なplot3dフォーマットに変更予定です(2014年12月)。
ポイントデータ
- LPT形式 粒子追跡ライブラリ用の専用テストフォーマットです。今後、PDMlibのフォーマットにリプレイス予定です(2014年12月)。
対応表現
レンダラは以下のレンダリングに対応しています。
- ポリゴンデータのグローバルイルミネーションレンダリング
- ボリュームデータのレイマーチン法によるボリュームレンダリング
- ボリュームデータの等値面レンダリング
- ポイントデータの球形表現でのレンダリング
- ラインデータの円柱形表現でのレンダリング
質感設定
HIVEはSURFACEがサポートするGLSLベースのシェーダー言語を利用して質感を設定することができます。通常のGLSLがサポートする命令に加え、レイトレーサ特有のtrace関数などをサポートしています。また、プレビュー用のレンダラとしてOpenGLのGLSLもサポートしています。
下記はHIVEにより作成したレンダリング結果です。
次回以降、HIVEの詳細な機能紹介や具体的な使い方などを紹介する予定です。