ハイパフォーマンスコンピューティング

以下は、SPMD: 領域分割法(DDM: Domain Decomposition Method)に関してよくある質問です。

DDMの実行では、MPIプロセス毎にいくつのMPIプロセス(-np)およびスレッド(-nt)を使用すべきですか?

DDMが別々のマシンのクラスタ上で実行されているか、あるいは複数プロセッサ / ソケットの共有メモリマシン上で実行されているかに依ります。

並列MPIプロセスを実行するには、(並列アクセスの)分散メモリが必須です。単一のノードが複数ソケット(それぞれが1つのプロセッサを有する)を含む場合、理論的には、並列ですべてのMPIプロセスを同時に処理するために十分なRAMがある限り、同数のMPIプロセス(ソケット数に等しい)がそのノード上で実行可能です。ただし、RAMで十分な分散メモリが使用できない場合、DDMではなくSMP(共有メモリ並列化)を使用し、–nt実行オプションを解して並列のノード内で複数コアを使った方がより効率的です。

各ノードが単一のシリアルOptiStructランのみの実行に十分なRAMを有する場合、ランを複数のスレッドに分割することによって各ノード上でSMPをアクティブ化します(4つより多いスレッドの使用では、そのようなノードには通常-nt=4は有効ではありません)。

例:

4ノードクラスタ(それぞれ2ソケット)上で各ノードが8コアを有する場合、以下のとおり実行できます:
  • RAMが不十分な場合: optistruct <inputfile> -ddm -np 4 –nt 4
  • RAMが十分な場合: optistruct <inputfile> -ddm -np 8 –nt 4
複数プロセッサの共有メモリマシンの場合:
複数プロセッサ / ソケットの共有メモリマシンでは、out-of-coreソリューションを回避することが重要です。そうしないと、複数プロセッサがシステムの入出力リソースと競合し、ソリューション全体の速度が落ちてしまいます。OptiStructがin-coreモードで確実に実行されるためには、–core inを使用し、MPIプロセスの数-npを制限します。MPIプロセスの数–npは通常、メモリのデマンドによって決定されます。-npが設定されると、使用可能なコアの総数に基づいて、MPIプロセス毎のスレッド数を決定することができます。
注: 全メモリ使用量は、.outファイルのメモリ推定量セクションにリストされるOptiStruct使用量と.statファイルにリストされるMUMPS使用量の総和です。MUMPS推定量は、.outファイルのメモリ推定量セクションにもリストされています。
別々のマシンのクラスタの場合:

一般的な慎重な方法としては、MPIプロセス毎のスレッド数-ntをソケット毎のコア数と等しく、また、マシン毎のMPIプロセス数を各マシンのソケット数と等しく設定します。これよりクラスター環境に外挿することが可能です。例えば、クラスター内の1つのマシンが2つの典型的なIntel Xeon Ivy BridgeのCPUに備わっている場合、マシン毎に2つのMPIプロセス、MPIプロセス毎に12コア(-nt=12)を設定できます。これは、Ivy BridgeのCPUは通常12コアで構成されるためです。

バージョン2018.0以降では、OptiStruct-cores実行オプションの設定も可能とします。ここでは、ユーザーの実行に使用できるコアの総数を特定することだけが必要とされます(クラスター実行か単一ノード実行にかかわらず)。OptiStructは、-npおよび-ntを、-coresを介したコア総数のスペックに基づき自動的に割り当てます。

DDMでは、シリアルランよりもMPIプロセスで使用されるメモリは少なく済みますか?

はい。DDMソリューションでは、MPIプロセス毎のメモリは、シリアルランと比べて大幅に少なく済みます。DDMは、マシンのクラスタ上の非常に大規模なモデル用として設計されています。全入出力量が分散され、より小さな入出力はシステムメモリによってより良くキャッシュされるため、複数MPIプロセス上のout-of-coreモードのスケーリングは極めて良好です。

DDMでは、シリアルランよりもMPIプロセスで使用されるディスクスペースは少なく済みますか?

はい。ディスクスペースの使用量もまた分散されます。

DDMはノーマルモード解析と動解析で使用できますか?

はい。DDM Level 2並列化(幾何分割)についてサポートされる解析タイプセクションをご参照ください。両方のDDMレベル(1と2)が直接法による周波数応答解析でサポートされます。一方、幾何分割(レベル2)は通常ほとんどの解析でサポートされます。

DDMは非線形解析で使用できますか?

はい。DDM Level 2並列化(幾何分割)についてサポートされる解析タイプをご参照ください。DDM level 1(タスクベースの並列化)は非線形静解析にはサポートされていません。しかしながら、幾何分割(DDMレベル2)は一般的にほとんど解析でサポートされています。

DDMは最適化ランで使用できますか?

はい。DDMは、解析と最適化で使用できます。詳細については、DDM Level 2並列化(幾何分割)についてサポートされる解析タイプをご参照ください。

1つのサブケースのみを有する場合、DDMは使用できますか?

はい。マトリックスの三角化と解析を実行するために、ソルバーは複数プロセッサ / ソケット / マシンを使用します。

複数のサブケースを有する場合、DDMを使用すべきですか?

はい。DDMは、複数のサブケースに適しています。複数のサブケースがDDM level 1(タスクベースの並列化)でサポートされている場合、実行は更に効率的です。これも、使用可能なメモリとディスクスペースリソースに依ります。

LANを使ってOptiStruct DDMを実行するには?

LANを使ってOptiStruct DDMを実行することが可能です。OptiStruct SPMDが起動される各ノードの異なる作業ディレクトリをセットアップするには、対応するMPIマニュアルをご参照ください。

別々のマシンのクラスタ上、または複数CPUの共有メモリマシン上で実行したほうがよいですか?

この質問に対する回答は1つに限られません。コンピュータが全てのタスクをin-coreで実行するのに十分なメモリを有している場合、MPIコミュニケーションはネットワークスピードによってスローダウンされることはないため、より速いソリューション時間が期待できます。しかし、タスクがout-of-coreで実行されなくてはならない場合、計算は、ディスクの読み書きによってスローダウンされます。同じマシン上の複数タスクは、ディスクアクセスで競合する可能性もあり、(究極的なケースでは)ウォールクロックタイムがシリアル(non-MPI)実行時の時間よりも遅くなることもあります。