nanofluidx

機能

粒子法に基づくnanoFluidXでは、シミュレーション中に大きな変形を伴う流れ(スロッシングなど)や激しい混相流、複雑なジオメトリ内を高速に運動する流れについて、画期的かつ効率的な手法で解析することができます。

 

一般的な自由表面流れ

パワートレインシステム内のオイルのスロッシング、開いた環境や高速に運動している開放型(または閉鎖型)タンク内を自由に流れる流体などをシミュレートできます。

 

高密度比の混相流

Smoothed Particle Hydrodynamics(SPH)法を採用したことにより、計算時間を増大させることなく、高密度比の混相流(水と空気など)を難なく扱うことができます。SPH法では、流体の境界面が自然に生成されるため、追加で境界面を再構築する必要がなく、計算時間の削減につながります。

 

回転しているギア、クランクシャフト、接続ロッド

さまざま種類の運動を規定できるオプションが実装されているため、回転するギアやクランクシャフト、接続ロッドを容易にシミュレートできます。また、周囲の流体との相互作用によって固体が受ける力やトルクを計測することも可能です。

 

タンクのスロッシング

急激な加速度が生じるとき(ブレーキや急な車線変更時)にタンクや車両にかかる力を計測できます。

 

GPUコンピューティング

GPUコンピューティングにより、効率の劣るCPUコンピューティングと比較してパフォーマンス面で大きな優位性が得られるほか、消費電力も節約できます。科学計算や工学計算の分野では、GPU革命が急速に進展しており、nanoFluidXは、この技術を利用した先駆的な商用ソフトウェアパッケージの1つとして、製品開発全体を大きく加速させようとしています。

 

比較のために、1350万粒子からなる複雑なダブルクラッチトランスミッション(DCT)の実際の例題を用いて、3000 RPMの基準回転数と3.4秒の物理的時間におけるシミュレーションが、nanoFluidXとCPUベースの商用SPHコードの両方で行われました。CPUコードの方は32コアのシステムを使用しましたが、nanoFluidXは、NVIDIA Tesla V100を4基搭載したシステム上で実行されました。結果として、nanoFluidXの計算時間は48時間であったのに対し、CPUコードの方は255時間でした。これは530%のスピードアップに相当しますが、同時に、865%の省エネも達成できました(画像ギャラリーをご覧ください)。

 

標準的な有限体積法のCFDコードを使用した場合、このように複雑なジオメトリのシミュレーションは、初期化することさえできないでしょう。仮にできたとしても、プリプロセシングに数週間もかかり、そのシミュレーションの計算コストは莫大なものになります。

32コアのCPUシステム(Intel Xeon E5-2665)での計算と、NVIIDIA Tesla V100 GPUカード4基でのnanoFluidXの計算の比較。
*エネルギー消費についての仮定: 周辺機器は除く。8コアCPUの場合は95W、Tesla V100の場合は250 W

 

シンプルなプリプロセッシング

従来的な意味でのメッシングは必要ありません。ジオメトリをインポートし、要素を選択し、粒子を生成するだけで済み、プリプロセッシングや適切なメッシュの検討に余計な時間を割く必要がなくなります。

 

剛体の運動

回転運動以外にも、入力ファイルで規定されている要素の軌道を扱うことができます。任意の並進運動をする固体と周囲の流体との相互作用を解析できます。

*引用されている数値は、ケースや構成に左右されます。

 

ハードウェア構成

nanoFluidXチームは、NVIDIA Tesla V100、P100、およびK80の各アクセラレータを推奨しています。それらはデータセンターの科学計算用として実績のあるGPUカードであり、nanoFluidXはそれらを用いて徹底的にテストされてきたからです。Nvidia Tesla Mシリーズ(M40、M60)もnanoFluidX の実行に適していますが、これらのカードは単精度でしか有意な性能を示しません。倍精度での実行は本質的に不可能です。

 

他のいくつかのNVIDIA GPUカード(Quadroシリーズ、GeForceシリーズ等)は、原理的にはnanoFluidXに適した計算能力を有しています。しかしながら開発チームは、これらのカード上でのnanoFluidXの精度、安定性、および全体的性能を保証していません。NVIDIAの現行の使用許諾契約(EULA)では、非Teslaシリーズのカードを4 GPU以上バンドルして、計算リソースとして商用利用することを禁止しているので注意してください。

 

また、このコードには最適なハードウェア使用率を保証する動的ロードバランシング機能があり、マルチノードのクラスター上でも実行できます。

 

推奨ハードウェア

  • 64 GB以上のRAM

  • CPUコア数はGPUデバイス数と同じにする必要があります。GPUデバイス間のメッセージ受け渡しはCPUによって処理されます。理想的には、結果出力等の計算オーバーヘッドをいくらか確保するために、CPUコア数は使用可能なGPUデバイス数をわずかに超えたほうがよいです。

  • 2TB以上のHDD空き容量

  • マルチノードシステムのためのInfinibandまたはOmniPath接続

サポートプラットフォーム

  • GCC 4.4.7以降およびGLIBC 2.12を搭載した全てのUnixベースのOS(RHEL 6.xおよび7.x、互換性のあるScientific Linux、CentOS、Ubuntu 14.04および16.04、OpenSUSE 13.2など)

  • NVIDIA CUDA 8.0およびOpenMPI 1.10.2 – バイナリに同梱