TSUBAME3.0計算サービスのWebページはこちら

TSUBAME2.5からTSUBAME3.0へのデータ移行方法の資料はこちら

mpirun の -np や t2sub の -l select オプションで指定する数字は CPU 数ですか? ノード数ですか?

CPU 数 (コア数) を指定します。TSUBAME2 は 1 ノード当り Xeonプロセッサ(6コア) を 2 個、計 12 コア塔載しています。 Xeonプロセッサはハイパースレッド機能がありますので、ノードあたりのコアは倍の24として見えます。「-np」オプションは、Number of Processes の略です。MPIでは並列の単位をプロセスと呼んでいます。 -l selectで指定する数字は「チャンク数」と呼び、並列の指定方法により意味するところが微妙に変化します。
例えば、
-l select=8:ncpus=8:mpiprocs=8:mem=48gb -l place=scatter
という指定はn1ge(TSUBAME1)でいうところの -mpi 64:8 -mem 6 の指定に相当します。(この指定はTSUBAME1では実際にはできませんでしたが)これを言葉で説明すると、ノードあたり8プロセスで48gbを使用し、全部で8ノード使用するという指定になります。
 
用語ですが、
select ---- チャンク数を指定します
ncpus ----- ノード内で使用するcore数(スレッド数)を指定します
mpiprocs --- ノード内で動作させるプロセス数を指定します
       (ただし、placeオプションと連動します)
gpus   ----- ノード内で使用するGPU数を指定します
 
「チャンク」は塊の意味で、並列の場合は、配置オプションのplaceと組み合わせて、内容が変化します。次のようになります。
・scatter
   mpiprocs、selectで指定する数の積算が並列数になります。
   select=8:mpiprocs=8にscatterで8ノード64並列です
   (なるべくmpiprocsもcoreを使用しますので同数のをncpusを指定するようにしてください)
・free(Placeを指定しない場合のデフォルト)
   ノードあたり24プロセスで詰め込み、64並列でしたら、
   select=64の指定とfreeで24×2 + 16 の3ノードで実行されます。
   select=8:mpiprocs=8のfree場合はノード内8並列になります。(ncpusの指定がないためノード内8並列になります。)
  上と同じ(3ノード実行)にするにはselect=8:mpiprocs=8:ncpus=8と指定してください。
・pack
   1ノードに全てを詰め込みます。
 ※PBSでは、資源の確保のみですので、シェル内の -n で指定する数字が実際の並列数になります。
 
例による比較
-l select=8:mpiprocs=8:ncpus=8  -l place=scatter (8ノードを使った64並列)
-l select=8:mpiprocs=8:ncpus=8  -l place=free (3ノーを使った64並列)
-l select=8:mpiprocs=8:ncpus=8  -l place=pack (1ノードを使った64並列)
 
詳しくはPBSマニュアルなどをご参照ください。