共有メモリ並列化(SMP)

共有メモリの並列化(SMP: Shared Memory Parallelization)は、問題解決のため、ノードに複数のスレッド(または論理プロセッサ)の使用を組み込む並列化手法です。

SMPでは共有メモリパラダイムが使用されます。ここでは、複数のスレッドが互いに通信し、1つの共有メモリ空間を使用します。

インプリメンテーション

OptiStructの共有メモリの並列化では、メッセージの受け渡しにさまざまな実行ファイルや別々のコンポーネントのインストールは必要ありません。

メッセージの受け渡しは、通常異なるノード間での通信に必要となります(SPMD-Hybrid)。ただし、SMPでは単一のノード内で並列化が行われるため、さらにMPI実行時間が必要になることはありません。


図 1. 一般的なコンピューターアーキテクチャレイアウト - 3つのノードを持つクラスター

構文

SMPを実行するには、標準のOptiStruct実行ファイルを使用できます。OptiStructスクリプトは実行に必要な実行ファイルをピックし、同時に必要な環境変数をすべて設定します。したがって、実行ファイルを直接コールするのではなく、スクリプトを使用することをお勧めします。SMPの実行は、 Compute Console (ACC)のOptiStruct実行オプション–cpu/-proc/-nproc/-ncpu/-nt/-nthread を使用するか、またはコマンドラインでスクリプトを使用することによりアクティブにできます。

OptiStruct SMPの実行

OptiStruct SMPの実行を起動するには、まず、実行のためのハードウェアの可用性を調査します。

クラスター内に複数のノードがある場合、OptiStruct SMPのみを使用するのではなく、OptiStruct SPMD–Hybrid機能を利用したほうが効果的です。

OptiStruct SMP(非ハイブリッド)は一般的に、複数の論理プロセッサを持つ単一ノードのワークステーションで有用です。これはワークステーションでの複数スレッドの並列化機能を利用します。
注:
  1. OptiStruct SMPの最小スレッド数には制限はありません。
  2. OptiStruct SMP(非ハイブリッド)は通常単一ノードのワークステーションでお勧めします。
ソルバースクリプトの使用(Linux
[optistruct@host]$ $ALTAIR_HOME/scripts/optistruct [INPUTDECK] -nt [NLPROC] [OS_ARGS]
Windowsでのソルバースクリプトの使用
[optistruct@host]$ $ALTAIR_HOME/hwsolvers/scripts/optistruct.bat [INPUTDECK] -nt [NLPROC] [OS_ARGS]
ここで、
[INPUTDECK]
入力デックのファイル名
[NLPROC]
論理プロセッサ数
[OS_ARGS]
OptiStructへの引数のリスト(オプション。詳細については、実行オプションをご参照ください)。
注: 1.OptiStruct SMPは、Altair Compute Console (ACC) GUIを使って起動することも可能です。

2.SMP実行オプションの引数は必須で、デフォルトはありません。