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 (要素並列化モジュール) |