並列処理
SMP、SPMD、HMPPの違い
- SMP(Shared Memory Parallelism)手法
SMPでは、CAEモデルを1つのドメインとして解析します。1つのドメインで複数のスレッドを使用して問題を解析します。問題の解析では、1つのコアあたり1つのスレッドを使用します。この手法が効率的であるのはコア数が少ない(7以下)場合のみです。この手法で使用できるノードは1つのみです。8コア上の8スレッドで1つのドメインを使用してシミュレーションを解析するには、サブミッションオプションとして
-np
1-nt
8を使用します。 - SPMD(Single Program Multiple Data)手法 SPMDでは、CAEモデルを多数のドメインに分割します。各ドメインを1つのコアで解析するので、ドメインあたりで使用するスレッドは1つのみです。この手法では、多くのノードを使用して問題を解析できます。Radiossでは、MPI(message passing interface)ソフトウェアを使用してドメイン間で情報を伝達します。最大256コアまでであれば、この手法は効率的ですが、そのためには各ノードを高速ネットワークで相互接続する必要があります。SPMDバージョンは、分散メモリマシン、共有メモリマシン、ワークステーションクラスター、ハイパフォーマンス計算クラスター上で実行できます。次の例では、モデルを32個のドメインに分割し、2つのノード(ノードあたり2基のCPU)を使用して解析します。各CPUは8コアを内蔵しています。32コア上で32個のドメインを使用してシミュレーションを解析するには、サブミッションオプションとして
-np
32-nt
1を使用します。 - HMPP(Hybrid Massively Parallel Processing)手法
HMPPでは、CAEモデルを複数のドメインに分割します。各ドメインを複数のコアで解析します。各ドメインでは、複数のスレッドを使用して問題を解析します。スレッドごとに使用するコアは1つです。Radiossでは、MPIソフトウェアを使用してドメイン間で情報を伝達します。複数のノードを使用して問題を解析できます。この手法では、SPMD手法よりドメインが少ないため、ドメイン間の通信量が少なくなります。したがって、多数のコア(257個以上)を使用して問題を解析する場合は、この手法が効果的です。この手法は、ノード間のネットワーク接続が低速な場合も有利です。
1つのドメインでのスレッド間通信が最も効率的になるのは、すべてのスレッドを同じCPUで処理している場合です。この例では、同じ構成の2つのノード(ノードあたり2基のCPU、CPUあたり8コア)を使用して問題を解析しています。このモデルは4つのドメインに分割され、ドメインごとに8つのスレッドを使用しているので、合計で32コアを使用しています。このケースでは、サブミッションオプションとして-np
4-nt
8を使用します。
/PARITH/ONとは
“並列演算”オプションは、Radiossと他の陽解法ソルバーとの大きな差別化機能です。このオプションは、RadiossのSMP、SPMD、HMPPの各バージョンで使用できます。
Radiossのリリースとコンピューターアーキテクチャが同じであれば、問題の解決に使用するプロセッサの数に関係なく、並列演算オプションによって確実に同じ結果が得られます。
特に陽解法シミュレーションでは本質的に局所的な座屈状況が多数発生することから、陽解法シミュレーションの相違に起因する結果の差異は“並列演算”によって低減できます。
運動条件の非適合を適用したモデルでは、必ずしも“並列演算”による効果が得られるとは限りません。