2009-09-15 13 views
20

私は、開発者からのVisualization ToolKit(VTK)の良いレビューをいくつか聞いたことがあります。しかし、それはどれくらい強力ですか?たとえば、何十億ものグリッドポイントを持つ(シミュレータ内の)オイルリザーバ全体の視覚化を処理できますか?ほとんどの産業用リザーバシミュレータは並列プロセッサで動作します。私はVTKが並列処理をサポートしていることは知っていますが、リザーバシミュレーションのようなものを走らせると並列プロセッサをいかに安定して利用できるのでしょうか?誰かがこのような大規模プロジェクトでVTKを使用しましたか?VTKはどれくらい良いですか?

Mathematicaは単純なリザーバシミュレーションをサポートしていますが、Java Swingライブラリを使用していると思います。だから、3DSplice以外の強力な視覚化にVTKが使われているという考えは誰にもありますか?また、誰もVTKを使って開発時間について何か言うことができますか?

答えて

11

VTKはC++でコーディングされ、C++、Python、Tcl/Tk、Javaで使用できます。あなたの野望に匹敵するほどの大きさの視覚化努力のために、Sandia(彼のTitan努力を含む)、Los Alamos、およびLivermoreのような研究室は、VTKを使用しています(もちろん、これは膨大な量のハードウェア、非常に熟練したVTKや他のすべてのテクノロジーで経験を積んだプログラマーが、何十億ものツールキットではなく、このような極端なスキルを持つチームを築くまでは、何十億ものグリッドポイントに取り組むプロジェクトではありません。

私はこれを主張しているわけではありませんが(あなたが念頭に置いている猛烈な野心的なスケールの視覚化プロジェクト)、どのように対処しても簡単になるでしょうが、 VTKよりも簡単です - )

+0

基本的に、私は石油技術者ですが、私は非常に情熱的なプログラミング我々は、リザーバシミュレータの開発に携わってきた熟練したプログラマのチームを持っている(私は情熱的であり、かつ熟練さに差がある知っている)程度です。最近、私たちはVTKについて考えてきました。 開発時間はどうですか? –

+1

開発時間は、任意の私が今まで聞いた他の同様のツールキットが、微調整し、まだそれが永遠に取っているように感じるでしょう巨大なクラスタでFAST億-ノードの視覚化を実行するための最適化よりも速いかもしれ - それは本質的に難しい問題です。あなたの開発をVTKより速くするツールはありませんが、VTKを使っていても手間がかかりません(何が変わっているのでしょうか? )。 –

+0

(私の短い個人的な経験から)いくつかの欠点があります。 *ドキュメントは(それほど良い)可能性があります。 *メーリングリストのみ、フォーラムはありません。 *何かがうまくいかない場合は、なぜそれを見つけるのは難しいです。 * APIの品質はとてもそうです(奇妙な名前、重複する機能、奇妙な概念) – Bim

-2

"強力な" VTK(または任意のライブラリ)がいかに不可能であるかを定義します。それはあなたの必要に応じて決まります。 VTKにグリッドを投げたり、ハードウェアの負荷がかかり、スムーズに動くことが期待できます。 VTKは巨大なモデルには向きませんが、これをサポートしようとするParaviewという名前のライブラリがあります。

サイドノート:プレーンラップトップで10億のセルモデルをインタラクティブに視覚化します(VTK /パラビューは使用しません)。どうやって?私はそれが秘密だと思う... :)

+0

ParaViewに言及するためにこれをupvoteしたいのですが、ParaViewはスタンドアロンのプログラムであり、 "ライブラリ"ではありません。また、その役割は、VTKに大規模データのサポートを追加することではありません。今のところ、私は技術的に間違っているため-1に投票しなければなりません。 – Eric

3

私の個人的な経験は肯定的ですが、小さなデータセットでのみです。あなたの場合のように、大きなデータセットを持っているならば、間違いなく非常に遅くなる可能性があります。プラス面では、非常に多くの視覚化モードがあり、純粋なOpenGLで書き直すことは考えられません。私はVTKの遅さがどこから来るのか分かりませんが、おそらくパイプラインアーキテクチャは役に立たないでしょう。また、その多くは使用するフィルタによって異なります。たとえば、容積プロットは建設(多くの平行な透明な平面)によって非常に遅いです。

データセットをプロットする前にデータセットを最小限にトリムすることが有用な解決策でした。非常に頻繁に、視覚的な精度の損失はごくわずかです。また、LevelOfDetail(LOD)フィルターを試すこともできますが、私はそれに慣れていません。

7

VTKは、さまざまな視覚化アルゴリズムの合理的な効率的な実装を提供するという点で、非常に強力なツールキットです。 VTKができることのいくつかを見るには、ParaViewをチェックすることをお勧めします。 ParaViewはVTKの周りで使用可能なアプリケーションを構築するので、さまざまなVTKコンポーネントを結合してすぐにデータを視覚化できます。

質問に直接対処するために、VTKの並列処理を使用してビジュアライゼーションの作成を高速化します。これは安定しているはずですが、シミュレーション計算とは独立しています。 VTKの使い方を学ぶのには時間がかかりますが、あなたが買うことができる本があり、その使い方の多くの面が説明されています。 Pythonのラッピングを試してみることは、VTKの使い方をスピードアップする良い方法です。

アプリケーションには、VTKが最適なソリューションであるかどうかはわかりません。ParaViewまたはPython VTKバインディングを使用して小規模な実験を行い、シミュレーションの妥当な可視化を作成できるかどうかを確認することをお勧めします。

+0

+1 ParaViewリファレンス。同様の仕事をする[VisIt](https://wci.llnl.gov/codes/visit/)もあります。また、ParaViewとVisItの視覚化をPythonを使用してスクリプト化できることにも注意してください。 – Chris

関連する問題