ジョブを実行するとマシン負荷が高騰してしまいます。

マシン負荷が高騰する場合、大きく分けて次の二つが原因です。

(1) mpiジョブで PBS_NODE fileを付け忘れている。
    複数ノードを使用したmpi並列で、先頭ノードに全プロセスが集まり、他のノードは負荷がかかっていない状態になります。
    PBSからmpiバッチジョブを投入する場合、実行記述で

        mpirun -n 4 -hostfile $PBS_NODEFILE ./myprog

    のように ホストファイルと呼ばれるマシン名のリストが必要です。上記のように記述することでマシンリストは展開されます。
    このホスト指定が無い場合に発生する高騰です。

(2) ハイブリット並列プログラムでcore以上のスレッドを使用している。
     PBSはncpusの値でCPU資源の管理を実施しています。 SMP並列のみの場合や、mpiのみの場合は
      この問題は発生しませんが、 mpi+SMP の場合、t2subの資源指定は

         select       チャンク数
         ncpus       スレッド数
         mpiprocs  プロセス数

     となり、例えば  -l select=2:ncpus=2:mpiprocs=4  の場合、チャンク内プロセスは 4、
     プロセスあたりのスレッドは 2、チャンク数は 2 ですので、実行シェル内は mpirun -n 8 となります。
     この指定の他に -l place=scatter が付いていると2ノードでの実行です。

     placeが無指定の場合で、指定資源に余裕のある場合、
     例えは、mem=25gb の場合、ノード内に二つのチャンクが取れますのでノード内実行になります。
     (16gbの場合は、三つが可能になります)
     また、この実行はmpi 8並列にスレッド=2 ですから、16コアを想定した実行指示になります。

※ マシンの確認方法
  ジョブを投入した後に、t2statコマンドを使用します。
   > t2sub -q S -l select=2:ncpus=16:mpiprocs=16:mem=10gb ./job.sh
   Checking accounting informations...
    :
   641705.t2zpbs05
   > t2stat -n1

Job ID          Username Queue  Jobname  SessID NDS TSK Memory Time  S Time
--------------- -------- ------ -------- ------ --- --- ------ ----- - -----
641705.t2zpbs05 xxxxxxxx S      OTHERS    12059   2  32   20gb 0:10 R 00:05 t2a005135/0*16+t2a005136/0*16

などとマシン情報を得ることができます。 Cloud Service Utilization
の"service"表示欄のキュー名をクリックするとマシン一覧が表示されます。
この例の場合は、Sキュー投入ですが、pbs05ですので、"X"キューを選択してください。
一覧の中から該当のマシンを選択すると負荷の状況を見ることができます。

●その他:
  多くのプロセスとスレッドから I/O を実行した場合にも発生します。上記のマシン高騰に比べるとノード自体の負荷は大きくなりませんが、ファイルサーバーに大きな負荷をかける状況が発生します。ganglia の表示が灰色のみの場合、これか、コマンド待ちの状況になっていることが考えられます。

この状況は、I/O 関係を見直すことで改善できます。
  (a) write文の数を削減する、書式なしで出力
  (b) tail,catなどのファイル操作コマンドの連続使用をやめる
  (c) Lustre の並列性能は、15倍程度までは伸びるので、Lustre性能のみでなく、並列分散ファイルを検討する