1. はじめに

ParaView は、2次元および3次元のデータセットを可視化するためのオープンソースのアプリケーションです。ParaViewが扱うことのできるデータセットのサイズは、アプリケーションを実行するアーキテクチャによって大きく異なります。ParaViewがサポートするプラットフォームは、シングルプロセッサのワークステーションからマルチプロセッサの分散メモリ型スーパーコンピュータやワークステーション・クラスタまで多岐にわたります。並列マシンを使用することで、ParaView は非常に大きなデータセットを並行して処理し、後でその結果を収集することができます。現在までに、ParaView は数十億の非構造セルを処理し、1兆以上の構造セルを処理することが実証されています。ParaView の並列フレームワークは10万以上の処理コアで実行されています。

ParaView’s design contains many conceptual features that make it stand apart from other scientific visualization solutions.

  • オープンソース、スケーラブル、マルチプラットフォームな可視化アプリケーション。

  • 大規模なデータセットを処理するための分散計算モデルをサポートします。

  • オープンで柔軟、かつ直感的なユーザーインターフェース。

  • オープンスタンダードに基づく、拡張可能なモジュール式アーキテクチャ。

  • 柔軟なBSD3条項ライセンス。

  • 商業用保守・サポート。

../../_images/HPCwire-ReadersChoice.png ../../_images/HPCwire-EditorsChoice.png

ParaView は、世界中の多くの学術機関、政府機関、および商業施設で使用されています。ParaView のオープンライセンスのため、ParaView のユーザー数を正確に把握することは不可能ですが、間接的な証拠から数千人規模であると考えられます。例えば、ParaView は毎年およそ10万回ダウンロードされている。ParaView は、2010年と2012年にHPCwire Readers' Choice Awardを、2010年にはHPCwire Editors' Choice AwardのBest HPC Visualization Product or Technology部門を受賞しています。

../../_images/Tank.jpg

図 1.10 ZSU23-4ロシアの対空車両に平面波が直撃している様子。画像提供:Jerry Clarke, US Army Research Laboratory。

../../_images/Fire.png

図 1.11 1000万個の非構造六面体セルによるSIERRA-Fuego-Syrinx-Caloreの疎結合シミュレーションによる横風による物体火災の再現。

../../_images/PeltonTurbine.jpg

図 1.12 ペルトン型タービンのシミュレーション。画像提供:スイス国立スーパーコンピューティングセンター

../../_images/LeMansCar.png

図 1.13 ル・マン・レースカー周辺の気流。画像提供:Renato N. Elias, NACAD/COPPE/UFRJ, Rio de Janerio, Brazil.

これらの可視化で示されるように、ParaView は幅広い応用範囲を持つ汎用ツールである。小さなデータから大きなデータまで対応できることに加え、ParaView は多くの汎用可視化アルゴリズムと、特定の科学分野に特化したものを提供する。さらに、ParaView システムはカスタムの可視化アルゴリズムで拡張することができます。

../../_images/ParaViewLibStack.png

多くの人が ParaView から連想するアプリケーションは、実際には ParaView にその機能を提供するライブラリの高いスタックの上に構築された小さなクライアントアプリケーションに過ぎないのです。ParaViewの機能の大部分はライブラリに実装されているので、次の図に示すように、ParaViewのGUIを独自のカスタムアプリケーションで完全に置き換えることが可能です。さらに、ParaView にはPythonスクリプトで可視化と後処理を自動化できるアプリケーションが付属しています。

ParaView アプリケーションで利用できるのは、ユーザーインターフェイスコンポーネントのライブラリで、アプリケーション間のコード共有を最大化します。ライブラリは、並列でインタラクティブな可視化を実行するために必要な抽象化レイヤーを提供します。これは、クライアントアプリケーションを、ParaView が並列に実行されているかどうか、どのように実行されているかに関する問題の大部分から解放します。()は基本的な可視化およびレンダリングアルゴリズムを提供します。VTKは、レンダリング、並列処理、ファイルI/O、並列レンダリングなどの基本的な機能を提供するために、他のいくつかのライブラリを組み込んでいます。このチュートリアルでは、ParaView クライアントアプリケーションを通して ParaView の使用を実演しますが、ParaView のモジュール設計が非常に多くの柔軟性とカスタマイズを可能にすることに留意してください。

1.1. 開発・資金調達

ParaView プロジェクトは、2000年にKitware Inc.とLos Alamos National Laboratoryの共同作業として始まりました。最初の資金は、米国エネルギー省の ASCI Views プログラムとの 3年間の契約によって提供されました。最初の一般向けリリースである ParaView 0.6 は、2002年10月に発表されました。ParaView の開発は、Sandia National Laboratories、Los Alamos National Laboratories、Army Research Laboratory、その他様々な学術機関や政府機関とのKitware Inc.の協力により継続されています。

2005年9月、Kitware社、Sandia国立研究所、CSimSoft社は、ParaView 3.0の開発を開始しました。これは、ユーザーインターフェースをより使いやすいものに書き換えることと、定量分析のフレームワークを開発することに焦点を当てた大きな取り組みでした。ParaView 3.0は2007年5月にリリースされました。

この時から、ParaView の開発は続いています。2013年6月にリリースされた|ParaView| 4.0は、よりまとまりのあるGUIコントロールと、より優れたマルチブロックインタラクションを導入しています。その後のリリースでは、シミュレーションや他のアプリケーションにその場で統合するためのCatalystライブラリも含まれています。ParaView 5.0は2016年1月にリリースされ、レンダリングシステムのメジャーアップデートを提供しました。新しいレンダリングでは、OpenGL 3.2の機能を活用し、大幅な性能向上を実現しました。その後のリリースでは、OSPRayライブラリによるレイキャストレンダリングのサポートも追加されました。

ParaView の開発は今日も続いています。Sandia National LaboratoriesはASCプロジェクトを通じて、ParaView の開発に資金を提供し続けています。ParaView はSciDAC Scalable Data Management, Analysis, and Visualization (SDAV) Institute Toolkit https://sdav-scidac.org の一部です。米国エネルギー省もロスアラモス国立研究所と様々なSBIRプロジェクトや他の契約を通じて ParaView に資金を提供しています。米国国立科学財団も、SBIRプロジェクトを通じてしばしば ParaView に資金を提供しています。その他の機関も ParaView のサポート契約を結んでいます。フランス電力、ミラコ、石油業界の顧客などです。また、ParaViewはオープンソースのプロジェクトであるため、スイス国立スーパーコンピューティングセンターのような他の機関も独自の開発で貢献しています。

1.2. 可視化の基礎

../../_images/BasicsOfVisualization.png

簡単に言うと、可視化のプロセスは、生のデータを、人間が見て理解できる形に変換することです。これにより、データをより認知的に理解することができるようになります。科学的可視化は、特に2Dまたは3D空間において明確に定義された表現を持つデータのタイプに関係しています。シミュレーションのメッシュやスキャナーのデータは、この種の分析に適しています。

データの可視化には、読み込み、フィルタリング、レンダリングという3つの基本ステップがあります。まず、データを ParaView に読み込まなければなりません。次に、データから特徴を生成、抽出、または導き出すために、データを処理する**フィルター** を任意の数を適用することができます。最後に、データから表示可能な画像がレンダリングされます。

ParaView は主に空間表現を持つデータを扱うために設計されました。したがって、ParaView で使用される主な data types はメッシュです。

../../_images/ImageData.png

一様直線格子 (Image Data)

一様な直交格子とは、1次元、2次元、3次元のデータの配列のことである。各点は互いに直交し、各方向に規則正しく配置されています。






../../_images/RectilinearGrid.png

非一様直線格子 (Rectilinear Grid)

一様直線格子と似ているが、点間の間隔が各軸に沿って変化することがあります。







../../_images/StructuredGrid.png

曲線格子 (Structured Grid)

曲線格子のトポロジーは非一様直線格子と同じである。しかし、曲線格子の各点は、任意の座標に配置することができます(ただし、セルが重なり合ったり、自己交差したりしないことが条件)。曲線格子は、非一様直線格子よりコンパクトなメモリフットプリントと暗黙のトポロジーを提供する一方で、メッシュの形状をより多様にすることができます。


../../_images/PolyData.png

ポリゴン (Poly Data)

ポリゴンデータセットは、点、線、2次元ポリゴンで構成されます。セル間の接続は任意であり、存在しないこともあります。ポリゴンデータは基本的なレンダリングプリミティブを表しています。どのデータもレンダリング前にポリゴンデータに変換する必要があります(ボリュームレンダリングが採用されている場合を除く)が、ParaView はこの変換を自動的に行います。


../../_images/UnstructuredGrid.png

非構造格子

非構造データセットとは、点、線、2次元ポリゴン、3次元四面体、非線形セルから構成されるデータセットです。ポリゴンデータと似ていますが、直接レンダリングできない3次元四面体や非線形セルも表現できます。




これらの基本的なデータ型に加え、ParaViewmultiblock データもサポートしています。基本的なマルチブロックデータセットは、データセットがグループ化されるときや、複数のブロックを含むファイルが読み込まれるときに作成されます。ParaView は、Hierarchical Adaptive Mesh Refinement (AMR)Hierarchical Uniform AMROctreeTabular、および Graph タイプのデータセットを表現するための特別なデータ型もいくつか持っています。

1.3. その他の情報

ParaView についての詳しい情報は、いろいろなところで見ることができます。ParaView Guide と題されたマニュアルは、ハードコピーとして購入することもできますし、https://docs.paraview.org/ から無料でダウンロードすることもできます。

ParaView のウェブページ、https://www.paraview.org/ParaView に関するより多くの情報を見つけるのに最適な場所でもあります。そこからは、ParaView のDiscourseフォーラム、Wikiページ、よくある質問、そして専門的なサポートサービスについての情報など、役に立つリンクが見つかります。

../../_images/HelpMenu.png

ParaView のメニューは、有用な情報を見つけるのに適した場所であり、ドキュメントやトレーニング資料へのリンクが多数含まれています。メニューには、前述の ParaView Guide やウェブページを直接呼び出す項目があります。また、このメニューには、Getting Started with ParaView ガイド、複数のチュートリアル(このチュートリアルを含む)、およびいくつかの可視化例を含むいくつかのトレーニング教材が用意されています。