EIC TOP

ジョブスクリプトの中でhomeからworkへ実行ディレクトリを変更したが、計算結果がworkではなく、homeに書かれてしまいます。workに計算結果を出力したいのですが?

バッチスケジューラUGEでは、標準出力などのファイルはWORKINGディレクトリに作成されますが、
このWORKINGディレクトリはデフォルトでは、ユーザのhomeになります。
つまり、どんな実行ディレクトリにスクリプトを書いて実行しても、/home/ユーザIDに出力されて
しまうため、スクリプトファイルと同じ場所に出力させるために、-cwdをつけることをEICシステムでは推奨しています。

-cwdなし・・・/home/ユーザID
-cwdあり・・・スクリプトファイルの場所

スクリプトファイルの中でhomeからworkへジョブの実行パスを変更しても、
-cwdが優先されるため、スクリプトファイルと同じ場所(今回の場合はhome)に書かれます。

workで実行したディレクトリに計算結果を出力するためには、以下の三つの方法があります。
・スクリプトファイルを/work/実行パスに置いて、実行する
・-cwdコマンドの代わりに "-wd /work/実行パス"を指定する
・コマンドの後ろにリダイレクションをつける(出力ファイル名は任意に指定できます)
(例: mpiexec_mpt -np 32 dplace -s1 a.out > outputfile )

-wdを指定した場合、当然ながら実行ディレクトリは/work/実行パスになりますので、
スクリプトファイル内で相対パスを使用している場合は注意が必要です。

何故、A~Fクラスで#$ -ac n=32と#$ -ac P=32のように、2回同じ並列数を指定する必要があるのでしょうか?

EICシステムでは、システムをなるべく無駄なく効率的に利用していただきたいため、
ジョブが意図的にコア飛ばしをしているのか、誤って投入したためにジョブの並列度が
低くなっているのかをチェックしています。

例えば、#$ -ac n=64、#$ -ac P=32のジョブの並列度が32であった場合は、意図的と
判別できますし、#$ -ac n=64と#$ -ac P=64のジョブの並列度で32であった場合は、
プログラムのミスか、スクリプトのミスであると思われるため、センターからユーザの方に
問い合わせることもあります。

なお、A~FクラスとG,HクラスのP、nの意味は異なりますので、ご注意ください。
A~Fクラス
#$ -ac n=確保するCPUコア数
#$ -ac P=実際に使用するCPUコア数
G,Hクラス 
#$ -ac n=使用するCPUコア数
#$ -ac P=ノードあたりのMPIプロセス数
#$ -ac T=OpenMPスレッド数

並列計算サーバで、ノードごとにメモリ使用状況を確認する方法はありますか?

ジョブが実行中であれば、各ノードのメモリ使用状況は確認できます。
以下のジョブのメモリ情報を調べます。
eic:~ # qstat
job-ID     prior   name  user   state submit/start at     queue     jclass     slots ja-task-ID
---------------------------------------------------------------------------------------------
4597 0.50500 job   user   r     04/15/2015 21:13:05 eicp5.q@r2i4n0   H.default   432
  
このジョブはeicp5(r2i4n0~r2i4n17)で動作していることが8カラム目で
確認できます。
  
qhostコマンドを実行します。
 
eic:~ # qhost |grep r2i4
r2i4n0                  lx-amd64       24    2   24   24  1.00  125.8G  120.3G     0.0     0.0
r2i4n1                  lx-amd64       24    2   24   24  1.00  125.8G  102.2G     0.0     0.0
r2i4n10                 lx-amd64       24    2   24   24  1.00  125.8G  102.2G     0.0     0.0
r2i4n11                 lx-amd64       24    2   24   24  1.00  125.8G  102.2G     0.0     0.0
r2i4n12                 lx-amd64       24    2   24   24  1.00  125.8G  102.2G     0.0     0.0
r2i4n13                 lx-amd64       24    2   24   24  1.00  125.8G  102.2G     0.0     0.0
r2i4n14                 lx-amd64       24    2   24   24  1.00  125.8G  102.8G     0.0     0.0
r2i4n15                 lx-amd64       24    2   24   24  1.01  125.8G  102.2G     0.0     0.0
r2i4n16                 lx-amd64       24    2   24   24  1.01  125.8G  102.2G     0.0     0.0
r2i4n17                 lx-amd64       24    2   24   24  1.00  125.8G  102.2G     0.0     0.0
r2i4n2                  lx-amd64       24    2   24   24  1.00  125.8G  112.5G     0.0     0.0
r2i4n3                  lx-amd64       24    2   24   24  1.00  125.8G  102.6G     0.0     0.0
r2i4n4                  lx-amd64       24    2   24   24  1.00  125.8G  102.2G     0.0     0.0
r2i4n5                  lx-amd64       24    2   24   24  1.00  125.8G  102.2G     0.0     0.0
r2i4n6                  lx-amd64       24    2   24   24  1.01  125.8G  102.2G     0.0     0.0
r2i4n7                  lx-amd64       24    2   24   24  1.01  125.8G  102.2G     0.0     0.0
r2i4n8                  lx-amd64       24    2   24   24  1.01  125.8G  102.2G     0.0     0.0
r2i4n9                  lx-amd64       24    2   24   24  1.01  125.8G  102.2G     0.0     0.0
 
9カラム目が使用メモリ量です。
ほとんどのノードが125.8GB中の100GBを使用していますが、
マスタープロセスが動作しているr2i4n0のみが120GB使用しており、
使用メモリに偏りがあるのが分かります。
マスターで使用メモリがノードの物理容量125.8GBを超えると、ジョブが
アボートしますので、ご注意ください。

各ジョブクラスが空いているかどうかを把握するコマンドはありますか?

qinfoコマンドを作成しました。
eic: # qinfo
CLASS  MAX  RUN WAIT
-----------------------
    B   16   16    2
-----------------------
  C/D   12    4    0
    C   12    3    0
    D    6    1    0
-----------------------
  E/F    8    8    1
    E    8    4    1
    F    4    4    0
-----------------------
  G/H    8    7    1
    G    8    3    0
    H    4    4    1

Bクラスは全体で16本実行でき、16本実行中のため、2本が待ちになっています。
Cクラス、Dクラスはそれぞれ、12本、6本実行でき、合わせて最大12本です。
Eクラス、Fクラスはそれぞれ、8本、4本実行でき、合わせて最大8本です。
既に合わせて8本実行中のため、Eクラスのジョブが1本待ちになっています。
Gクラス、Hクラスはそれぞれ、8本、4本実行でき、合わせて最大8本です。
GとH合わせて7本が実行中で、1本空いていますが、既にHクラスの制限4にかかっているため、
Hクラスのジョブが1本待ちになっています。
これとは別に各ユーザごとの制限により、空いていても待ちジョブがある場合があります。

並列計算サーバの特定のブロックで、MPT ERROR: Could not find an IB path between ranks というエラーを出力して、ジョブが終了してしまいます。

このエラーはInfinibandのハードウェアに異常があった場合に発生します。
システム側でこのブロックを閉鎖して交換作業を行いますので、しばらくお待ちください。

Windows上で作成してから、データを転送したディレクトリからジョブを投入すると、実行されずEqwの状態になってしまいます。

スクリプトファイルにWindowsの改行コードが混じっていると正常に実行できません。
cat -vコマンドを使用すると確認できます。
eic:$ cat -v /home/xxx/sample.csh
#!/bin/csh^M
#$ -jc B^M
#$ -ac n=8^M
#$ -ac P=1^M
#$ -cwd^M
./a.out^M
ここでみられる「^M」がWindowsの改行コードです。

dos2unixコマンドで変換が可能です。
eic:$ dos2unix /home/xxx/sample.csh

作成したファイルをcat -vで確認してみます。
eic:$ cat -v /home/xxx/sample.csh
#!/bin/csh
#$ -jc B
#$ -ac n=8
#$ -ac P=1
#$ -cwd
./a.out
「^M」がなくなっており、正常なスクリプトファイルになっています。

ディスクの使用状況とquota制限値を確認したい。

quotaコマンドで使用状況とquota制限値を確認できます。
eic :$ lfs quota /home
Disk quotas for user xxx (uid 3009):
     Filesystem  kbytes   quota   limit   grace   files   quota   limit   grace
          /home 190532580       0       0       -  615473       0       0       -
Disk quotas for group xxx (gid 3009):
     Filesystem  kbytes   quota   limit   grace   files   quota   limit   grace
          /home 175210588       0       0       -  615132       0       0       -
eic :$ lfs quota /work
Disk quotas for user xxx (uid 3009):
     Filesystem  kbytes   quota   limit   grace   files   quota   limit   grace
          /work       0       0       0       -       0       0       0       -
Disk quotas for group xxx (gid 3009):
     Filesystem  kbytes   quota   limit   grace   files   quota   limit   grace
          /work       0       0       0       -       0       0       0       -

ジョブ終了後に消費メモリ量を知りたい

qacctコマンドで確認できます。(使用方法:qacct -j ジョブID)

eic :$ qacct -j 1256
==============================================================
qname        eicp4.q
hostname     r2i3n8

(略)

maxvmem      776.542G
maxrss       4.809M
maxpss       2.078M
arid         undefined
jc_name      G.default

この maxvmem 776.542Gが消費された最大メモリ量になります。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ