ParaView
| 開発元 | Sandia National Labs, Kitware Inc, Los Alamos National Labs. |
|---|---|
| 最新版 | 3.8 |
| 対応OS | Unix/Linux, Mac OS X, Microsoft Windows |
| 種別 | Scientific visualization, Interactive visualization |
| ライセンス | BSD |
| 公式サイト | www.paraview.org |
ParaViewは科学技術可視化の並列化と対話操作のための、自由に利用できるオープンソースプログラムである。ParaViewはデータセットのリモート可視化を可能にするサーバクライアントアーキテクチャを持ち、level of detail(LOD)モデルを生成することで大規模なデータセットにたいしても対話的なフレームレートを維持する。ParaViewはVisualization Tool Kit(VTK)ライブラリ上に構築されている。VTKとはデータ、タスク、パイプラインメカニズムのための可視化サービスを提供するライブラリのセットであり、ParaViewは共有/分散メモリ型のマルチコンピュータとクラスタ上でのデータ並列化を行うアプリケーションとして設計された。また、シングルコンピュータのアプリケーションとしても実行できる。
目次 |
要約[編集]
ParaViewはオープンソース、マルチプラットフォームのデータ分析と可視化のためのアプリケーションである。ParaViewはリモート可視化を可能にするクライアントサーバアーキテクチャを採用し、level of detail(LOD)モデルを生成することにより大規模データセットに対しても対話的なフレームレートを維持できる。ParaViewのユーザーは定性的、定量的な方法を使用して、データ分析のための可視化を迅速に構築することができる。また、ParaViewのバッチ処理機能を使用したプログラミングや3Dの対話操作によるデータ探索ができる。
ParaViewは分散メモリ計算機資源を使用した、非常に大規模なデータセットの分析のために開発された。ParaViewは小規模データのためにラップトップで実行する場合と同じように、テラスケールのデータセットを分析するためにスーパーコンピュータ上で実行することができる。
ParaViewはターンキーアプリケーションであると同時にアプリケーションのフレームワークでもある。ParaViewの基礎となるコードは、迅速に垂直的アプリケーションを開発するために、そのすべてのコンポーネントが再利用できるように設計されている。この柔軟性によりParaViewの開発者は、特定の問題領域のための機能を持ったアプリケーションを迅速に開発することができる。
ParaViewは分散型、共有メモリ型の並列計算機、及び単一のプロセッサシステム上で動作する。Windows、Mac OS X、Linux、IBM Blue Gene、Cray XT3、様々なUnixワークステーションクラスタやスーパーコンピュータ上で正常にテストされている。ParaViewの内部では、データ処理とレンダリングエンジンにVisualization Tool Kit(VTK)を使用し、ユーザーインターフェースはQtで書かれている。
ParaViewチームの目標は次のとおりである:
- オープンソース、マルチプラットフォームの可視化アプリケーションを開発する。
- 大規模なデータセットを処理するために分散計算機モデルをサポートする。
- 柔軟でオープン、直感的なユーザーインターフェイスを作成する。
- オープンスタンダードに基づく拡張可能なアーキテクチャを開発する。
ParaViewの歴史[編集]
ParaViewプロジェクトは、米国商務省のASCI Views計画による資金提供を受け、国立ロスアラモス研究所とKitware株式会社の共同作業として2000年に始まった。最初のパブリックリリースは2002年10月に発表された。
Kitwareは、ParaViewとは別に、 Webベースの可視化システムを2001年12月に開発した。このプロジェクトは、米陸軍研究所のSBIRs(宇宙空間赤外線システム) フェーズ1、2によって資金提供を受け、最終的にはParaView Enterprise Editionとなる。このPVEEはParaViewのクライアント/サーバアーキテクチャの開発に大きく貢献した。
2005年9月、Kitwareとサンディア国立研究所、及びCSimSoftはParaView3.0の開発を開始した。ParaView3.0は2007年5月にリリースされた。
機能[編集]
可視化機能
- 構造格子(一様直交格子、非一様直交格子、曲線格子)、非構造格子、多角形、画像、マルチブロックとAMRデータを扱う。
- すべての処理操作(フィルタ)はデータセットを生成する。これにより、どの操作結果に対してもさらなる処理を行うことができるし、その結果をデータファイルとして扱うこともできる。たとえば、抽出した切断面に対して、マスキングによってその表面の頂点を削減し、その結果にグリフを適用することができる。
- ベクトル場はグリフ(円錐、線分、球、2次元の各種グリフ)をデータセットの各点において適用することにより詳細を調べることができる。グリフは、スカラー、ベクトル成分またはベクトルの大きさで拡大縮小することができ、ベクトル場を使用して向き付けることができる。
- 等高線と等値面は、スカラまたはベクトルのコンポーネントを持つすべてのデータ型から抽出することができる。結果には他の変数で色付けすることができる、またさらに処理を行うこともできる。構造格子データの等高線や等値面は、可能な場合には、その効率的なデータレイアウトを使用した高速で効率的なアルゴリズムにより抽出される。
- データセットの部分領域は次の方法で抽出できる。任意の平面を用いた切断処理またはクリップ処理(全てのデータ種類で可能)、しきい値判定を指定したセルの排除(全てのデータ種類で可能)、またはVOI(volume of interest)の指定(構造データのみ)。
- 流線(Streamlines)は固定ステップか適応積分器を使って生成される。この結果は、点、線、チューブ、リボンなどで表示することができ、多くのフィルタで処理することもできる。粒子経路(Particle paths)は時間に依存するデータセットから抽出することができる。
- データセットの点は、スカラー(ユーザ定義の転位ベクトル)とベクトル(非線形の長方形格子では利用できない)で移動することができる。
- 配列の計算では、新しい変数を既存の点やセルのフィールド配列を使用して計算することができる。スカラ演算、ベクトル演算が多数サポートされている。
- Python Programmableフィルタを使用した高度なデータ処理が可能であり、VTK、NumPy、SciPy、その他のPythonモジュールが使用できる。
- データは、点または直線沿いにプローブすることができる。この結果はグラフィカルかテキストで表示され、またさらに分析するためのエクスポートが可能。またデータの時間経過を抽出することができる(最小値、最大値、標準偏差などの統計情報も含む)。
- 強力な選択メカニズムとスプレッドシートビューを使用し、定量的なデータ調査が可能である。点の選択や矩形領域の選択によるインタラクティブな選択メカニズムにより、データセットの重要な部分集合に焦点をあてることができる。
- スプレッドシートビューによりデータセット全体や選択された部分集合の生のデータを検査することができる。
- ParaViewはデフォルトで多くのデータソースとフィルタを提供している。どのVTKのソースやフィルタでも簡単なXMLの記述で追加が可能である(VTKは数百のアルゴリズムを提供している。詳細はVTK Documentationを参照。
入力/出力とファイル形式
- VTKを含む様々なファイル形式をサポート。VTKは新旧、パラレルを含むすべての種類、ASCII、バイナリの読み書きが可能。
- EnSight 6とEnSight Gold。並列、ASCII、バイナリを含むすべての種類。複数の部品(multiple parts)がサポートされており、各部分が別々にロードされて個別に処理ができる。読み取り専用。
- Plot3D。ASCII、CまたはFortranのバイナリ、複数ブロックをサポート。ブランキングは現在、部分的にサポート。
- STLとBYUを含む様々な多角形のファイル形式。デフォルトでは、読み込み専用だが、XML記述を書くことによって他のVTK writersを追加することができる。
- 他の多くのファイル形式をサポート。完全なリストはParaView ReadersとParaView Writersを参照。
- すべてのVTKのソースまたはフィルタは、シンプルなXML記述を書くことによって追加することができる(VTKは多くのreaderを提供している、完全なリストはVTK documentation を参照)。
- ParaViewはオープンソースであるため、ユーザーは簡単に自分のreaderやwriterを追加することができる。
ユーザーとの対話
- Qtアプリケーションフレームワークに基づいた直感的で柔軟なインターフェース。
- 3次元ウィジェット(マニピュレータ)を使用し、3Dビュー上で直接対話操作することにより多くのフィルタのパラメータを変更することができる。たとえば、ユーザーは流線(streamline)フィルタのシードラインを、コントロールポイントをクリックして新しい場所にドラッグすることにより操作することができる。
- コンパクトなユーザーインターフェイスデザイン。デフォルトでは、全ての重要なツールがメインウィンドウにある。これにより散らかったデスクトップ上でしばしば厄介な、多数のウインドウを配置する必要がなくなる。また、インスペクタをメインウインドウから切り離すこともできる。
- 大きなデータセットを扱う場合でも、level-of-detail(LOD)モデルを使用し、インタラクティブなフレームレートを維持する。ユーザーは対話操作中に縮小バージョンのモデルを表示するためのしきい値(点の数)を決定する(モデルのサイズも調整可能である)。対話操作が終わると、もとの大規模なモデルが描画される。
大規模データと分散コンピューティング
- ワークステーションクラスタ、可視化システム、大規模なサーバー、スーパーコンピュータなどを含む、MPIを用いた分散共有メモリシステム上での並列実行。
- ユーザーインターフェイスはクライアント/サーバーモードを使用し、別のコンピュータ上で実行される。
- ParaViewはデータ並列モデルを採用し、データは異なるプロセスで処理されるよう、断片に分割される。ほとんどの可視化アルゴリズムは並列実行時でも変更がいらない。またParaViewはもゴーストレベルをサポートし、断片のつなぎ目が不変な結果を生成する。ゴーストレベルはプロセス間で共有する点やセルであり、周辺の情報を必要とするアルゴリズムによって使用される。
- 分散レンダリング(各ノードで結果をレンダリングしたのち、デプスバッファを用いて合成される)とローカルレンダリング(結果のポリゴンは一つのノードに集められ、ローカルにレンダリングされる)をサポートしている。またこの両方を組み合わせてることもできる(例えば、level-of-detailモデルをローカルレンダリングするが、完全なモデルは分散レンダリングにすることも可能)。これにより、小さいデータでの作業のパフォーマンスを犠牲にすることなく、大きなデータのスケーラブルなレンダリングを提供している。
- 分散レンダリング、およびタイル状のディスプレイ(tiled-display)は、サンディア国立研究所のIce-Tライブラリを使用して行われている。
スクリプトと拡張性
- ParaViewは、シンプルだが強力なPython言語を使用して、完全にスクリプト化されている。サーバーマネージャとよばれるParaViewのデータエンジンは、Pythonのインターフェイスを介して完全にアクセスすることができる。Pythonによってエンジンに加えられたすべての変更は、自動的にユーザーインターフェイスに反映される。
- ParaViewはPythonのインターフェイスを使用してバッチアプリケーションとして実行することができる。バッチモードを使用して、IBMのBlue GeneとCray XT3を含むスーパーコンピュータで正常にParaViewを実行することに成功している。
- 分散データ処理は、Pythonプログラマブルフィルタを使用して、Pythonで行うことができる。このフィルタはNumPyとSciPyをシームレスに使用できる。
- 追加モジュールは、インターフェイスのXML記述を書くか、またはC++のクラスを書くことで追加することができる。XMLインターフェイスによってユーザーやデベロッパは、特別なコードの作成や再コンパイルをすることなく、独自のVTKフィルタをParaViewへ追加することができる。詳細はPlug-inの方法とコンパイル時にParaViewを拡張する参照してください。
ParaViewの使用例[編集]
- ParaVieのさまざまな使用例については、サンディア国立研究所のウェブページhttp://www.sandia.gov/ParaView とKitwarem Paravewのウェブページhttp://paraview.org/paraview/resource/application.html を参照してください。
- ParaViewはサンディア国立研究所で使用され、メシュコフ-リヒトマイヤーのシミュレーションによる、128ノードのクラスタ上で生成された4億7300万個の三角形の等値面を可視化した。このデータサイズは当時の最高記録である。[1]
- 2005年、サンディア国立研究所において、 NVIDIAとKitwareは複数のプレスにスケーラブル可視化に関してParaViewを用いたレンダリングの成果を発表した。この発表では、ParaViewを使用して秒間80億ポリゴン超のレンダリングレートを達成するというスケーラブル性能のブレークスルーが報じられた。[2][3]
- ParaViewはOpenFOAMのの可視化プラットフォームとして使用されている[4]
- スイス国立スーパーコンピューティングセンターでは、物理シミュレーションの結果を可視化するためにParaViewを使用している[5]。
- TeraGrid2008カンファレンスにおいて、計算流体力学シミュレーションデータがParaViewにより可視化された[9]。
- カリフォルニア州アルゴンヌ大学のサーバに、ParaViewの使用方法についてのチュートリアルがある。これはアメリカ国立科学財団によって資金提供されたTeraGridリソースサイトの一つである。[10] [11]
- ローレンスバークレー国立研究所の可視化グループ[15]
- 北極地域スーパーコンピューティングセンター [16]
- サンディエゴスーパーコンピューティングセンター [17]
- ノースカロライナ大学チャペルヒル校チャペルヒルの可視化科学課程 [18]
- ピッツバーグスーパーコンピューティングセンターではMFIX(Multiphase Flow with Interphase eXchanges)シミュレーションプログラムの可視化にParaViewを使用している。[19] [20]またParaViewチュートリアルを提供している。[21]
- 米国防総省の高性能コンピュータ利用環境近代化プログラム(HPCMP) データ分析評価センター[24]
- オークリッジ国立研究所国立計算科学センターでは大規模データセットの可視化にParaViewを使用している。 [25]
関連ソフトウェア[編集]
Visualization ToolKit(VTK)は3Dコンピュータグラフィックス、画像処理、可視化のための、自由に利用可能なオープンソースのソフトウェアシステムであり、世界中の何千もの研究者や開発者に使用されてきた。VTKはC++クラスライブラリで構成され、Tcl/Tk、Java、およびPythonを含むインタプリタインターフェースレイヤを持つ。ParaViewは追加機能を提供するためにVTK上に構築されている。ParaViewはVTKのパイプラインアーキテクチャを採用し、ParaViewのクラスは一般的にvtkObjectから派生している。
CMakeはビルド、テスト、ソフトウェアのパッケージのために設計されたツールファミリである。CMakeはプラットフォームやコンパイラに依存しないシンプルな設定ファイルを使用して、ソフトウェアのコンパイルプロセスを制御するために使用されている。CMakeは望みのコンパイラ環境で使用されるネイティブのmakefileとワークスペースを生成する。ParaViewはソフトウェアのコンパイルプロセスにcmakeを使用している。
参照[編集]
- ^ http://www.technologynewsdaily.com/node/344
- ^ プレスリリース
- ^ プレスリリース
- ^ 7.1 paraFoam
- ^ http://www.cscs.ch/a-display.php?id=1168
- ^ EPFL-LMH 可視化
- ^ Logiciel ParaView pour PC
- ^ プレアデスクラスターParaView可視化ソフトウェア
- ^ TeraGrid [ User Info: Data: Visualization: Gallery ]
- ^ TeraGrid [ User Info: Data: Visualization: ParaView Overview ]
- ^ UofC/ANL TeraGridリソース
- ^ インディアナ大学:2005スーパーコンピューティング
- ^ 計算流体力学研究室-ミッション&概要
- ^ インディアナ大学:2006スーパーコンピューティング
- ^ NERSCでのParaViewに関する情報
- ^ ARSC 2007 ParaViewとezVIZワークショップ
- ^ SDSCスレッド:SDSCユーザーサポートニュースレター(Issue 2006-07 可視化)
- ^ Comp/Phys/Mtsc 715, 科学の可視化
- ^ ParaViewを使用してMFIXのスカラー変数の可視化
- ^ ParaViewを使用してMFIXのベクトル変数を可視化
- ^ ParaViewのチュートリアル
- ^ ARL MSRC Sci-Vis: ParaViewを使用したCTHデータの可視化
- ^ ARL MSRC eLink Fall 2005: 大規模データの可視化はどうなってる?
- ^ DAACがサポートされているソフトウェアの一覧
- ^ オークリッジ国立研究所科計算科学センターのParaViewソフトウェア