HOME > システム > SR11000 > システムに関する情報 > NQSにおけるプロセス数の指定について

NQSにおけるプロセス数の指定について

 2007年6月18日から、NQSにおいて1ノードあたりのプロセス数の指定が可能になりました。これにより、ノード内で要素並列化とMPI並列化を混在させることができます。なお、その際、要素並列化で起動されるスレッド数には注意が必要です。指定方法は以下のとおりです。

プロセス数の指定

 バッチジョブのスクリプトファイルに以下を記述します。1ノードのCPU数(キューにより異なり、8または16)を設定した場合は "#@$-J SS" と同意になります。CPU数を超える値は指定できません。

 #@$-J Tn(n:1ノードあたりのプロセス数)
 例)#@$-J T4 → 4プロセス

スレッド数の指定

 環境変数 HF_PRUNST_THREADNUM にスレッド数(1~16)を設定します(最適化FORTRAN90/77、最適化C、最適化標準C++ 共通)。"1ノードあたりのプロセス数×スレッド数" が1ノードのCPU数を超えると実行効率が低下する場合があります。1ノードのCPU数を超えないように設定してください。

 setenv HF_PRUNST_THREADNUM n (n:スレッド数)
 例)setenv HF_PRUNST_THREADNUM 4 → 4スレッド
   mpirun ./a.out


 ※最適化FORTRAN90/77のみ、実行時オプション PRUNST(THREADNUM(n)) による指定も可能です。
 例)mpirun ./a.out -F' PRUNST(THREADNUM(4))' → 4スレッド

スクリプトファイル記述例

*1ノード、4プロセス、4スレッド
#@$-q debug
#@$-N 1
#@$-J T4
setenv HF_PRUNST_THREADNUM 4
mpirun ./a.out (要素並列化モジュール)
*1ノード、4プロセス、要素並列化なし
#@$-q debug
#@$-N 1
#@$-J T4
mpirun ./a.out (非要素並列化モジュール)
*4ノード、8プロセス、8スレッド
#@$-q debug
#@$-N 4
#@$-J T2
setenv HF_PRUNST_THREADNUM 8
mpirun ./a.out (要素並列化モジュール)
*2ノード、32プロセス、要素並列化なし
#@$-q debug
#@$-N 2
#@$-J SS (または "#@$-J T16" )
mpirun ./a.out (非要素並列化モジュール)
*1ノード、1プロセス、16スレッド
#@$-q debug
#@$-N 1
./a.out (要素並列化モジュール)