8.9. 利用ファイルシステム(volume)の選択¶
- ジョブ投入時に指定するvolume
ジョブ実行に必要なデータ領域(/vol0002-6)
システムが提供しているSpack(パブリック・インスタンス)を利用する場合はSpackの領域(/vol0004)
- ジョブ投入時に指定不要なvolume
2ndfs(/vol0001)
ホーム領域のvolume
注意
ホーム領域は利用可能な容量が20GiB程度と少ないため、ジョブの実行環境として利用しないでください。
8.9.1. 環境変数およびpjsubオプション¶
ジョブで利用するvolumeを指定するには、以下の環境変数およびpjsubオプションを使用します。
環境変数名 |
説明 |
---|---|
PJM_LLIO_GFSCACHE |
pjsub -x オプション、ジョブスクリプトで第2階層ストレージのキャッシュ領域として利用するvolumeを指定します。PJM_LLIO_GFSCACHE=パス名" で指定します。
指定可能なパス名は/vol0002,/vol0003,/vol0004,/vol0005,/vol0006です。
複数指定する場合は、":" 区切りで指定します。
|
PJM_LLIO_SHAREDTMP |
pjsub -x オプション、ジョブスクリプトで共有テンポラリ領域のMDTとして利用するvolumeを指定します。PJM_LLIO_SHAREDTMP=パス名" で指定します。
指定可能なパス名は/vol0002,/vol0003,/vol0004,/vol0005,/vol0006です。
複数指定する場合は、":" 区切りで指定します。
|
pjsubオプション |
説明 |
---|---|
--all-mount-gfscache |
全てのvolumeが環境変数(PJM_LLIO_GFSCACHE)に指定されたものみなします。以下の設定と同義です。
PJM_LLIO_GFSCACHE=/vol0002:/vol0003:/vol0004:/vol0005:/vol0006
|
--no-check-gfscache |
ジョブ投入時に環境変数(PJM_LLIO_GFSCACHE)の設定状況を検査しません。
環境変数(PJM_LLIO_GFSCACHE)の指定有無にかかわらず、ジョブを投入します。
|
--no-check-directory |
ジョブ投入時のカレントディレクトリにグループデータ領域パスが含まれているか検査しません。
|
注意
pjsubオプション
--all-mount-gfscache
,--no-check-gfscache
および--no-check-directory
は、ジョブスクリプトで指定できません。指定した場合はジョブ投入時にエラーとなりますので、コマンドラインで指定してください。
参考
環境変数(PJM_LLIO_GFSCACHE、およびPJM_LLIO_SHAREDTMP)でvolumeを複数指定することが可能ですが、障害の影響を受けにくくするためには、指定するvolumeを必要最小限にしてください。
8.9.2. ジョブ投入方法¶
ジョブで利用するvolumeを指定してジョブ投入するには、以下のようにします。
[pjsubのオプションで指定する場合]
login$ pjsub -x PJM_LLIO_GFSCACHE=/vol0004:/vol0005
[ジョブスクリプト内で指定する場合]
#PJM -x PJM_LLIO_GFSCACHE=/vol0004:/vol0005
[ジョブスクリプト内で指定する場合:シングルアカウント利用時]
#PJM -x PJM_LLIO_GFSCACHE=/vol0004:/vol0005 #PJM -g groupname # シングルアカウント利用時はグループ指定
利用例1)データ領域のvolumeからジョブを投入する
ジョブが存在するデータ領域のvolumeのパス名を確認します。
データ領域(/vol0n0m/data/<groupname>)のパスからvolume番号を取得してください。データ領域のパスが/vol0501/data/<groupname>の場合、/vol05の5の部分がvolume番号となり、PJM_LLIO_GFSCACHEに設定するパス名は「/vol0005」となります。
ジョブスクリプトに利用するvolumeのパス名を指定します。
login$ cd /vol0n0m/data/groupname/username login$ vi jobscript #!/bin/bash #PJM -L "node=4" #PJM -L "rscgrp=small" #PJM -L "elapse=1:00:00" #PJM --mpi "max-proc-per-node=4" #PJM -x PJM_LLIO_GFSCACHE=/vol0005 # /vol0005を設定 #PJM -g groupname llio_transfer ./a.out mpiexec ./a.out llio_transfer --purge ./a.out
ジョブを投入します。
login$ pjsub jobscript
参考
利用するデータ領域がホーム領域と同じvolumeの場合はパス名は指定する必要はありません。
利用例2)システムが提供しているSpack(パブリック・インスタンス)を利用するジョブを投入する
ジョブスクリプトに利用するvolumeのパス名を指定します。(Spack利用時は/vol0004を指定します。)
login$ cd /vol0n0m/data/groupname/username login$ vi jobscript #!/bin/bash #PJM -L "node=4" #PJM -L "rscgrp=small" #PJM -L "elapse=1:00:00" #PJM --mpi "max-proc-per-node=4" #PJM -x PJM_LLIO_GFSCACHE=/vol0004 # /vol0004を設定 #PJM -g groupname . /vol0004/apps/oss/spack/share/spack/setup-env.sh export LD_LIBRARY_PATH=/lib64:$LD_LIBRARY_PATH spack load gromacs@2021.3 ...
ジョブを投入します。
login$ pjsub jobscript
参考
ホームディレクトリが存在するvolumeのパス名が/vol0004の場合は指定する必要はありません。指定がない場合でも利用することが可能です。
利用例3)pjsubオプション--all-mount-gfscache
または--no-check-gfscache
を指定する
ジョブスクリプトの作成 (環境変数PJM_LLIO_GFSCACHEは指定しません。)
login$ vi jobscript #!/bin/bash #PJM -L "node=4" #PJM -L "rscgrp=small" #PJM -L "elapse=1:00:00" #PJM --mpi "max-proc-per-node=4" #PJM -g groupname llio_transfer ./a.out mpiexec ./a.out llio_transfer --purge ./a.out
ジョブ投入
login$ pjsub --all-mount-gfscache jobscriptもしくは
login$ pjsub --no-check-gfscache jobscript
注意
ジョブ実行に必要なvolumeが環境変数に設定されていない場合、以下のエラーとなります。
- ホームディレクトリのあるvolumeとは異なるvolumeにあるディレクトリにジョブを配置して投入した場合、ジョブ投入時にエラーとなります。The current directory is contained in vol000X, so set PJM_LLIO_GFSCACHE to vol000X.(ex. -x PJM_LLIO_GFSCACHE=/vol000X)
- Spackを利用するジョブで環境変数に/vol0004が指定されていない場合、ジョブ投入時にエラーとなります。If you use Spack, set PJM_LLIO_GFSCACHE to vol0004.(ex. pjsub -x PJM_LLIO_GFSCACHE=/vol0004)Specify --no-check-gfscache option if you do not want to use Spack and want to submit jobs.
- 環境変数に指定可能なvolumeを正しく指定していない場合(存在しないvolumeを指定した場合など)、ジョブ投入時にエラーとなります。[ERR.] PJM 0045 pjsub path isn't on the global file system.
障害の発生により、運用から切り離されたvolumeを環境変数に指定した場合、ジョブ実行時にPJM CODE=180でエラーとなります。