新規購入お見積

SZL データ分析-ほぼ直線のスケールを実現!

June 24, 2015 in Tecplot Blog

ニワトリが先か、卵が先か。-アリストテレス

 

Trillon Cell Challenge (1兆セルへの挑戦:Tecplot 社内の取り組み計画) を達成するためのテクノロジーの開発中に、我々は可視化におけるこの古典的な因果関係のジレンマと闘い、ついに答えを見つけました!しかし、まずは少し背景をご説明しましょう。

 

サブゾーン・ロードオンデマンド (SZL) テクノロジー

ご存知のとおり、Tecplot 360 EX は SZL (サブゾーン・ロードオンデマンド) と呼ばれる新しい技術を利用して、Tecplot 360 で読み込むデータの量を最小限に抑えます。基本的な考え方としては、大規模なデータセットを小片またはサブゾーンに分割し、目的のプロットに必要なサブゾーンのみを読み込みむということです。

たとえば、図1 の NASA 台形翼のようなサイズの大きいデータセットの圧力等値面を作成するには、目的の等値面の値を含む圧力範囲 (p min, p max) のサブゾーンだけをロードします。

 

桁違いに速い Tecplot 360 EX

図2 の等値面を生成するためには、サブゾーンの 1.5% だけをロードするだけで済みます。このため、Tecplot 360 の新バージョンである Tecplot 360 EX の等値面生成は、データセット内の大部分のデータポイントの圧力をロードしてしまう以前のバージョンよりも桁違いに速いのです (競合製品のコードよりも速い) 。

図1:NASA 台形翼 (高揚力予測ワークショップ) のジオメトリ。
図2:NASA 台形翼 (高揚力予測ワークショップ) の圧力等値面。

ニワトリが先か卵が先か

しかし、圧力がデータセットに格納されていない場合はどうなるでしょうか?従来型変数 (ρ, ρν, ρυ, ρω, Ε) のみが格納されている場合はどうなるでしょうか?これは Overflow のようなコードを使用して生成した PLOT3D 形式ファイルでよく見られる状況であり、古典的な「ニワトリが先か卵が先か」という状況です。各サブゾーンの圧力の範囲 (卵) はロードするサブゾーンを決定しますが、圧力 (ニワトリ) がファイルに存在していないのです。

理想気体の圧力は、次の数式を使用して従来型変数から計算できます。

1つのソリューションにおいて、5つのすべての従来型変数をロードし、データセットの各ポイントの圧力を計算し、圧力範囲を計算して、以前と同じように続行します。残念ながら、これはすべてのデータを読み込むことになるので、読み込まれるデータ量を最小限に抑えるという SZL の目標に反しています。

ニワトリか卵か、「コバヤシマル」か、勝ち目のない状況か。それとも?

サブゾーン内の圧力を実際に計算しなくても、各サブゾーン内の圧力の範囲の境界を区間演算を使って計算できることが判明しました。区間演算を使うと、計算変数の範囲 (実際には範囲の境界) を計算した入力変数の範囲と方程式から推定することができます。SZL によって、区間演算を使用してロードするサブゾーンを決定し、ロードしたサブゾーン内の新しい変数のみが計算されます。ただし、区間演算は各サブゾーンの計算変数の範囲を過大評価するので、多くの不要なサブゾーンが読み込まれる可能性もあります。

 

サブゾーン・ロードオンデマンド (SZL) のインパクトをテスト

我々は NASA 台形翼 (図1) を使用して、オンデマンドで従来型変数から圧力を計算する際の近似の影響をテストしました。また、新しい圧力変数を事前計算し、ロードしたサブゾーンの数を比較できるようにしました。

NASA の台形翼のデータセットには、合計 800,606 のセル・サブゾーンが含まれています。事前計算した圧力を直接使用すると、サブゾーン・ロード・オン・デマンドは 11,905 のサブゾーン (全体の1.49%) をロードします。(ρ, ρυ, ρu, ρω, Ε) の範囲で区間演算を使うと、サブゾーン・ロード・オン・デマンドは 13,349 サブゾーン (全体の 1.67%) をロードします。事前計算した圧力に比べて、サブゾーンが12%だけ多くなります。