並列処理

SMP、SPMD、HMPPの違い

並列化手法を説明する前に、並列化に使用するコンピューターを理解する必要があります。計算クラスターでは、1つのノードが単体のワークステーションコンピューターのように機能します。各ノードには、単一のCPUソケットに装着した物理CPUを複数搭載できます。各物理CPUには、多数のコアを内蔵できます。計算クラスター全体は、高速ネットワークで接続した多数のノードで構成されます。図 1 は、それぞれ8コアを内蔵した2基のCPUを搭載する単一の計算ノードを示しています。


図 1. コンピュータークラスターノードの例
  • SMP(Shared Memory Parallelism)手法

    SMPでは、CAEモデルを1つのドメインとして解析します。1つのドメインで複数のスレッドを使用して問題を解析します。問題の解析では、1つのコアあたり1つのスレッドを使用します。この手法が効率的であるのはコア数が少ない(7以下)場合のみです。この手法で使用できるノードは1つのみです。8コア上の8スレッドで1つのドメインを使用してシミュレーションを解析するには、サブミッションオプションとして-np 1 -nt 8を使用します。



    図 2.
  • 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を使用します。


    図 3.
  • 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を使用します。


    図 4.

/PARITH/ONとは

並列演算”オプションは、Radiossと他の陽解法ソルバーとの大きな差別化機能です。このオプションは、RadiossのSMP、SPMD、HMPPの各バージョンで使用できます。

Radiossのリリースとコンピューターアーキテクチャが同じであれば、問題の解決に使用するプロセッサの数に関係なく、並列演算オプションによって確実に同じ結果が得られます。

特に陽解法シミュレーションでは本質的に局所的な座屈状況が多数発生することから、陽解法シミュレーションの相違に起因する結果の差異は“並列演算”によって低減できます。

運動条件の非適合を適用したモデルでは、必ずしも“並列演算”による効果が得られるとは限りません。