サイズ: 15739
コメント:
|
サイズ: 12274
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 5: | 行 5: |
本システムでサポートするジョブ利用形態は,コンテナ上でのジョブ利用だけとなります.このため,利用者はジョブ投入時のコマンドオプションまたはジョブスクリプトの指示文で起動コンテナを指定する必要があります.コンテナ上では,コンパイル,シリアルプログラムや並列プログラム(SMP,MPI)の実行,研究用アプリケーションの実行が可能です.<<BR>> また,ジョブの実行方法は2つあります.PBS Professionalを使って実行されるバッチジョブと,直接実行するインタラクティブジョブです.対話的に処理を実行する場合やGUIアプリケーションを起動する場合は,インタラクティブジョブを投入してください. | '''バッチジョブ'''と'''インタラクティブジョブ'''により,計算サーバを利用することができます.本システムでは,ジョブスケジューラとしてPBS Professionalを採用しており,ジョブの送信,状況確認等はPBS Professionalのコマンドによって行います.対話的に処理を実行する場合やGUIアプリケーションを起動する場合は,インタラクティブジョブを投入してください.それ以外の場合は,実行スクリプトを準備しバッチジョブを投入してください.<<BR>> 本システムでサポートするジョブ利用形態は,Singularityコンテナ上でのジョブ利用のみとなります.特に指定しない場合,デフォルトのコンテナイメージが使用されますが,利用者が用意したSingularityコンテナを指定することも可能です.詳しくは"コンテナイメージの指定"の箇所を読んでください. |
行 14: | 行 14: |
例えば,研究用キューwSrchqにジョブを投入する場合は次のようにします. {{{ $ qsub -q wSrchq 実行スクリプト名 |
例えば,研究用キューEduqにジョブを投入する場合は次のようにします. {{{ $ qsub -q Eduq 実行スクリプト名 |
行 30: | 行 30: |
||<style="" & quot; & amp; quot; & amp; amp; quot; & amp; amp; amp; quot; & amp; amp; amp; amp; quot;text-align:center& amp; amp; amp; amp; quot; & amp; amp; amp; quot; & amp; amp; quot; & amp; quot; & quot; "" |2>-v ||-v DOCKER_IMAGE=<image> ||指定したDockerイメージ上でジョブを実行. || ||-v SINGULARITY_IMAGE=<image> ||指定したSingularityイメージ上でジョブを実行. || |
||-v ||-v SINGULARITY_IMAGE=<image> ||指定したSingularityイメージでジョブを実行. || |
行 34: | 行 33: |
-lオプションで指定可能な主なリソースは下記の通りです。 | -lオプションで指定可能な主なリソースは下記の通りです. |
行 45: | 行 44: |
qsubコマンドのオプションは実行スクリプトの2行目以降で指定することもできます.例えば,スレッド並列を行う場合,並列数の指定は実行スクリプト中で次のように行います.ncpusの数値に合わせて環境変数 OMP_NUM_THREADS が自動的に設定されます. |
qsubコマンドのオプションは実行スクリプトの2行目以降で指定することもできます. ・スレッド並列計算などで複数のCPUコアを占有する場合 |
行 50: | 行 50: |
例:1ノードを利用し,ノード内の並列数を4とした場合 {{{ #PBS -l select=1:ncpus=4 }}} MPIによるプロセス並列を行う場合,並列数の指定は実行スクリプト中で次のように行います. |
・MPIによるプロセス並列計算を行う場合 |
行 60: | 行 55: |
例:1ノードを利用し,ノード内のプロセス数を4とした場合 {{{ #PBS -l select=1:ncpus=4:mpiprocs=4 }}} 例:2ノードを利用し,ノード内の並列数を2とした場合 {{{ #PBS -l select=2:ncpus=2:mpiprocs=2 }}} 利用するメモリ容量を指定して実行したい場合は,実行スクリプト中で次のように記述します. |
・占有するメモリ容量を指定する場合 |
行 75: | 行 60: |
例:1ノードを利用し,ノード内のスレッド並列数を14,ジョブあたりのメモリ容量を96GBとした場合 {{{ #PBS -l select=1:mem=96gb:ncpus=14 }}} 利用する演算ノードを指定して実行したい場合は,次のように記述します. |
・利用する演算ノードを指定する場合 |
行 85: | 行 65: |
例:演算ノードxsnd10,xsnd11を利用し,各ノード内の並列数を28とした場合 {{{ #PBS -l select=1:vnode=xsnd10:ncpus=28+vnode=xsnd11:ncpus=28 }}} * 演算ノードのホスト名はxsnd00~xsnd14です(システム構成-ハードウェア構成 参照). * xsnd00~xsnd14はTesla V100を各2枚搭載しています. GPGPUを指定して実行したい場合は,次のように記述します.ngpusにはノードあたりのGPU数(0~2)を指定します.GPGPUはgSrchq, gLrchq, gEduqで使用可能です. |
* 演算ノードのホスト名はysnd00~ysnd14です(システム構成-ハードウェア構成 参照). * ysnd00~ysnd14はMI210 PCIeを各2枚搭載しています. GPUを指定して実行したい場合は,次のように記述します.ngpusにはノードあたりのGPU数(0~2)を指定します.GPUはsRchq, mRchq, Eduq, iEduqで使用可能です. |
行 99: | 行 74: |
行 100: | 行 76: |
行 104: | 行 79: |
例:ジョブ実行時間を336時間とする場合 {{{ #PBS -l walltime=336:00:00 }}} === サンプルスクリプト:逐次実行 === {{{ #!/bin/bash #PBS -q wLrchq #PBS -l select=1:ncpus=1 #PBS -v DOCKER_IMAGE=prg-env:latest ulimit -c 0 # avoid generating core files source /etc/profile # enable mocule command . /common/intel-2022/compiler/latest/env/vars.sh # for Intel compiler . /common/intel-2022/mkl/latest/env/vars.sh # for Intel MKL cd $PBS_O_WORKDIR ./test.x }}} === サンプルスクリプト:MPI/OpenMPハイブリッド並列(2プロセス,2スレッド/プロセス) === {{{ #!/bin/bash #PBS -q wLrchq #PBS -l select=1:ncpus=2:mpiprocs=2 #PBS -v DOCKER_IMAGE=mpi-env:latest,DOCKER_OPTIONS="--network=overlaynw" ulimit -c 0 # avoid generating core files source /etc/profile # enable mocule command . /common/intel-2022/compiler/latest/env/vars.sh # Intel compiler . /common/intel-2022/mpi/latest/env/vars.sh # Intel MPI . /common/intel-2022/mkl/latest/env/vars.sh # Intel MKL export OMP_NUM_THREADS=2 cd $PBS_O_WORKDIR mpirun -np 2 test.x }}} === サンプルスクリプト:GPGPUを利用するプログラムの実行 === {{{ #!/bin/bash #PBS -q gLrchq #PBS -l select=1:ncpus=1:ngpus=1 #PBS -v DOCKER_IMAGE=prg-env:latest ulimit -c 0 # avoid generating core files source /etc/profile # enable mocule command . /common/intel-2022/compiler/latest/env/vars.sh # Intel compiler cd $PBS_O_WORKDIR ./test.x |
=== 実行スクリプトの例:逐次実行 === {{{ #!/bin/bash #PBS -q Eduq #PBS -l select=1:ncpus=1 #PBS -l walltime=1:00:00 ulimit -c 0 # avoid generating core files . /etc/profile # enable module command module load intel/2025 # enable use of numerical library cd $PBS_O_WORKDIR ./test.x }}} === 実行スクリプトの例:OpenMP並列 === {{{ #!/bin/bash #PBS -q Eduq #PBS -l select=1:ncpus=4 ulimit -c 0 # avoid generating core files . /etc/profile # enable module command module load intel/2025 module load intelmpi/2025 export OMP_NUM_THREADS=4 cd $PBS_O_WORKDIR ./test.x }}} === 実行スクリプトの例:ノード占有MPI === {{{ #!/bin/bash #PBS -q sRchq #PBS -l select=1:ncpus=48:mpiprocs=48:mem=256g ulimit -c 0 # avoid generating core files . /etc/profile # enable module command module load intel module load intelmpi export OMP_NUM_THREADS=1 cd $PBS_O_WORKDIR mpirun -np 48 ./test.x }}} === 実行スクリプトの例:ノード間並列 === ノード間で通信を行うために,~/.sshにてパスワードなしの公開鍵,秘密鍵を作成(例:ssh-keygen -t rsa -b 4096)し,公開鍵の内容をauthorized_keysに追加してください. {{{ #!/bin/bash #PBS -q mRchq #PBS -l select=2:ncpus=48:mpiprocs=48:mem=256g ulimit -c 0 # avoid generating core files . /etc/profile # enable module command module load intel/2025 module load intelmpi/2025 export OMP_NUM_THREADS=1 cd $PBS_O_WORKDIR mpirun -np 96 ./test.x }}} === 実行スクリプトの例:AMD GPUの利用 === {{{ #!/bin/bash #PBS -q Eduq #PBS -l select=1:ncpus=1:ngpus=1 #PBS -v SINGULARYTY_IMAGE=/common/prg_env_amd_2025.01.sif ulimit -c 0 # avoid generating core files . /etc/profile # enable module command cd $PBS_O_WORKDIR ./test.x |
行 160: | 行 158: |
各キューの標準/最大リソースは下記コマンドで確認できます。 |
各キューの標準/最大リソースは下記コマンドで確認できます. |
行 168: | 行 165: |
qsubの-Iオプションを使用することで、対話的にジョブを実行することができます。'''このときのキューはwEduqとgEduqのいずれかを指定してください。'''<<BR>> 下記の例では2CPUコア、メモリ16GiB、1GPUのリソースを割当て、bashを起動しジョブの中で対話型操作(ホスト名確認、GPU確認)を行う場合の例です。GPGPUはジョブに割当てられたGPGPUのみ表示されます。 {{{ [yi041@xdev08 test]$ qsub -I -q gEduq -l select=1:ncpus=1:mem=8g:ngpus=1 -v SINGULARITY_IMAGE=prg-env:latest -- bash qsub: waiting for job 2401828.xregistry0 to start qsub: job 2401828.xregistry0 ready [singularity] version=3.9.9, image=prg-env:latest |
qsubの-Iオプションを使用することで,対話的にジョブを実行することができます.このときのキューは Eduq もしくは iEduq のいずれかを指定してください. 下記の例では1CPUコア,メモリ8GiB,1GPUのリソースを割り当てて,bashを起動しジョブの中で対話型操作(ホスト名確認,GPU確認)を行う場合の例です.GPUはジョブに割当てられたGPUのみ表示されます. {{{ [******@ydev09 ~]$ qsub -I -q iEduq -l select=1:ncpus=1:mem=8g:ngpus=1 -v SINGULARITY_IMAGE=/common/Singularity_sif/prg_env_amd_2025.01.sif /bin/bash qsub: waiting for job 1193.ypbs0.edu.tut.ac.jp to start qsub: job 1193.ypbs0.edu.tut.ac.jp ready Singularity> hostname yind00.edu.tut.ac.jp Singularity> |
行 177: | 行 176: |
Thu May 2 14:39:59 2024 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 510.47.03 Driver Version: 510.47.03 CUDA Version: 11.6 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 Tesla V100-PCIE... On | 00000000:3B:00.0 Off | 0 | | N/A 31C P0 23W / 250W | 0MiB / 16384MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+ |
Wed May 28 15:49:15 2025 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 570.124.06 Driver Version: 570.124.06 CUDA Version: 12.8 | |-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 NVIDIA A100 80GB PCIe Off | 00000000:CA:00.0 Off | 0 | | N/A 40C P0 65W / 300W | 1MiB / 81920MiB | 0% Default | | | | Disabled | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | No running processes found | +-----------------------------------------------------------------------------------------+ |
行 200: | 行 199: |
qsub: job 2401828.xregistry0 completed }}} |
qsub: job 1193.ypbs0.edu.tut.ac.jp completed }}} |
行 203: | 行 204: |
'''ジョブは,そのジョブが実行されるコンテナイメージを必ず指定する必要があります.''' DockerまたはSingularityコンテナ上でジョブを実行することが可能です。 Dockerを使用する場合は-v DOCKER_IMAGE=<イメージ名>、Singularityを使用する場合はSINGULARITY_IMAGE=<イメージ名>を指定してジョブを起動します。 指定可能なイメージ名は下記コマンドで確認できます。 {{{ conda3/chainer:6.3.0-ompi huggingface/transformers-pytorch-gpu:4.3.2 imc.tut.ac.jp/centos7:2019.09 imc.tut.ac.jp/centos7:2021.11 imc.tut.ac.jp/chainer-cuda101:7.8.1 imc.tut.ac.jp/debian-nlp:20221031 imc.tut.ac.jp/scip:8.0.0 imc.tut.ac.jp/scip-cplex:8.0.0-2211 imc.tut.ac.jp/transformers-pytorch-cuda101:4.3.2 imc.tut.ac.jp/transformers-pytorch-cuda101:4.4.2 imc.tut.ac.jp/transformers-pytorch-cuda101-py37:4.11.2 imc.tut.ac.jp/transformers-pytorch-cuda101-py37:4.24.0 imc.tut.ac.jp/transformers-pytorch-cuda116:4.24.0 imc.tut.ac.jp/transformers-pytorch-cuda116:4.25.1 imc.tut.ac.jp/transformers-pytorch-cuda118:4.31.0 imc.tut.ac.jp/transformers-pytorch-cuda118:4.36.0 imc.tut.ac.jp/transformers-pytorch-cuda118:4.37.2 imc.tut.ac.jp/ubuntu18.04:2020.01 imc.tut.ac.jp/ubuntu18.04:2020.02 jparacrawl-fairseq:latest mpi-env:latest mpi-env:2020.03.01 mpi-env:2020.03 mpi-env:2022.05.14a mpi-env:2022.05.14b mpi-env:2023.02 ... }}} === Dockerジョブの実行例 === DockerジョブはDOCKER_IMAGEで指定したイメージのコンテナを作成し、コンテナ上でジョブを起動します。 Dockerイメージにサービス(EntryPoint)がある場合は、各サービスにアクセスするIPアドレス:ポート番号が表示されます。Dockerジョブのホスト名は<割当ノード名>-<ジョブ番号>になります。 下記の例ではTensorflowコンテナ上でbashを起動し、pythonでTensorflowをインポートしています。 {{{ -bash-4.2$ qsub -I -q gEduq -l select=1:ncpus=2:mem=16g:ngpus=1 \ -v DOCKER_IMAGE=nvcr.io/nvidia/tensorflow:19.07-py3 -- bash qsub: waiting for job 580.xregistry0 to start qsub: job 580.xregistry0 ready Access Port: <proto>://133.15.52.212:6142/ -> container port 6064 <proto>://133.15.52.212:6227/ -> container port 8888 <proto>://133.15.52.212:6427/ -> container port 6006 z991212@xsnd00-580-xregistry0:/home/home1/z991212$ uname -n xsnd00-580-xregistry0 z991212@xsnd00-580-xregistry0:/home/home1/z991212$ python -c "import tensorflow" 2019-09-05 11:19:08.962826: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudart.so.10.1 z991212@xsnd00-580-xregistry0:/home/home1/z991212$ exit |
Singularityイメージを指定してジョブを実行することが可能です. イメージを指定する場合SINGULARITY_IMAGE=<イメージ名>を指定してジョブを起動します./common/Singularity_sif/ に用意されているイメージの他に,ユーザが用意したイメージを指定することもできます.Singularityではイメージ内のサービス(EntryPoint)は使用できません. イメージを指定しない場合は,自動で選択されたSingularityイメージでジョブを起動します. === 実行例 === 下記の例ではコンテナ上でbashを起動し,unameコマンドでホスト名を確認し,pythonでdatetimeをインポートしています. {{{ [*****@ydev09 ~]$ qsub -I -q Eduq -l select=1:ncpus=2:mem=16g -v SINGULARYTY_IMAGE=/common/Singularity_sif/prg_env_intel_2025.01.sif /bin/bash qsub: waiting for job 1191.ypbs0.edu.tut.ac.jp to start qsub: job 1191.ypbs0.edu.tut.ac.jp ready Singularity> uname -n ysnd00.edu.tut.ac.jp Singularity> python3 -c "import datetime" Singularity> exit |
行 255: | 行 223: |
qsub: job 580.xregistry0 completed }}} === Singularityジョブの実行例 === SingularityジョブはSINGULARITY_IMAGEで指定したイメージのコンテナを作成し、コンテナ上でジョブを起動します。 Singularityではイメージ内のサービス(EntryPoint)は使用できません。Singularityジョブのホスト名は通常ジョブと同様に<割当てノード名>になります。 下記の例ではTensorflowコンテナ上でbashを起動し、pythonでTensorflowをインポートしています。 {{{ -bash-4.2$ qsub -I -q gEduq -l select=1:ncpus=2:mem=16g:ngpus=1 \ -v SINGULARITY_IMAGE=nvcr.io/nvidia/tensorflow:19.07-py3 -- bash qsub: waiting for job 581.xregistry0 to start qsub: job 581.xregistry0 ready [singularity] version=3.3.0-1, image=nvcr.io/nvidia/tensorflow:19.07-py3 z991212@xsnd00:/home/home1/z991212$ uname -n xsnd00.edu.tut.ac.jp z991212@xsnd00:/home/home1/z991212$ python -c "import tensorflow" 2019-09-05 20:20:25.580823: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudart.so.10.1 z991212@xsnd00:/home/home1/z991212$ exit exit qsub: job 581.xregistry0 completed |
qsub: job 1191.ypbs0.edu.tut.ac.jp completed |
行 282: | 行 231: |
行 286: | 行 234: |
行 291: | 行 240: |
行 292: | 行 242: |
行 296: | 行 245: |
行 297: | 行 247: |
行 301: | 行 250: |
行 303: | 行 253: |
行 309: | 行 258: |
Running状態ジョブがキャンセルできない場合は下記コマンドで強制的にジョブを終了することができます。 |
Running状態ジョブがキャンセルできない場合は下記コマンドで強制的にジョブを終了することができます. |
ジョブの実行
目次
ジョブ環境
バッチジョブとインタラクティブジョブにより,計算サーバを利用することができます.本システムでは,ジョブスケジューラとしてPBS Professionalを採用しており,ジョブの送信,状況確認等はPBS Professionalのコマンドによって行います.対話的に処理を実行する場合やGUIアプリケーションを起動する場合は,インタラクティブジョブを投入してください.それ以外の場合は,実行スクリプトを準備しバッチジョブを投入してください.
本システムでサポートするジョブ利用形態は,Singularityコンテナ上でのジョブ利用のみとなります.特に指定しない場合,デフォルトのコンテナイメージが使用されますが,利用者が用意したSingularityコンテナを指定することも可能です.詳しくは"コンテナイメージの指定"の箇所を読んでください.
バッチジョブ
ジョブ投入方法
PBS Professional用の実行スクリプトを作成し,qsubコマンドで次のようにジョブを投入します.
$ qsub -q キュー名 実行スクリプト名
例えば,研究用キューEduqにジョブを投入する場合は次のようにします.
$ qsub -q Eduq 実行スクリプト名
qsubコマンドのオプション
主なオプションを以下に示します.
オプション |
使用例 |
意味 |
-e |
-e filename |
標準エラー出力の内容を指定されたファイル名に出力する.-eオプションが指定されていない場合は,qsubコマンドが実行されたディレクトリ上に作成される.その際のファイル名は“ジョブ名.eジョブ番号”になる. |
-o |
-o filename |
標準出力の内容を指定されたファイル名に出力する.-oオプションが指定されていない場合は,qsubコマンドが実行されたディレクトリ上に作成される.その際のファイル名は“ジョブ名.oジョブ番号”になる. |
-j |
-j join |
標準出力,標準エラー出力を1個のファイルにマージするかしないかの動作を指定する. |
-q |
-q destination |
ジョブを投入するキューを指定する. |
-l |
-l resource_list |
ジョブの実行に必要なリソース資源を指定する. |
-N |
-N name |
ジョブ名を指定する(文字数は15文字まで).デフォルトはスクリプトでジョブが投入された場合は,スクリプトのファイル名となる.そうでない場合は,“STDIN”になる. |
-m |
-m mail_events |
ジョブの状態をメールで通知する指定を行う. |
-M |
-M user_list |
メールを送信するメールアドレスを指定する. |
-v |
-v SINGULARITY_IMAGE=<image> |
指定したSingularityイメージでジョブを実行. |
-I |
-I |
インタラクティブ(対話型)ジョブを実行します. |
-lオプションで指定可能な主なリソースは下記の通りです.
リソース名 |
説明 |
値 |
select |
ノード数 |
1以上の整数 |
ncpus |
CPUコア数/ノード |
1以上の整数 |
mpiprocs |
MPIプロセス数/ノード |
1以上の整数 |
mem |
メモリ使用量/ノード |
整数<mb|gb> |
ngpus |
GPU使用数/ノード |
0以上の整数 |
walltime |
最大実行時間 |
HH:MM:SS |
実行スクリプトにおけるオプションの指定
qsubコマンドのオプションは実行スクリプトの2行目以降で指定することもできます.
・スレッド並列計算などで複数のCPUコアを占有する場合
#PBS -l select=使用ノード数:ncpus=占有CPUコア数(並列数)
・MPIによるプロセス並列計算を行う場合
#PBS -l select=使用ノード数:ncpus=1ノードあたりの占有CPUコア数:mpiprocs=1ノードあたりのMPIプロセス数
・占有するメモリ容量を指定する場合
#PBS -l select=使用ノード数:mem=1ノードあたりのメモリ容量:ncpus=1ノードあたりの並列数
・利用する演算ノードを指定する場合
#PBS -l select=1:vnode=ホストA:ncpus=ホストAでの並列数:vnode=ホストB:ncpus=ホストBでの並列数,・・・
* 演算ノードのホスト名はysnd00~ysnd14です(システム構成-ハードウェア構成 参照).
* ysnd00~ysnd14はMI210 PCIeを各2枚搭載しています.
GPUを指定して実行したい場合は,次のように記述します.ngpusにはノードあたりのGPU数(0~2)を指定します.GPUはsRchq, mRchq, Eduq, iEduqで使用可能です.
#PBS -l select=1:ngpus=<GPU数>
ジョブ実行時間を指定して実行したい場合は,次のように記述します.
#PBS -l walltime=hh:mm:ss
実行スクリプトの例:逐次実行
#!/bin/bash #PBS -q Eduq #PBS -l select=1:ncpus=1 #PBS -l walltime=1:00:00 ulimit -c 0 # avoid generating core files . /etc/profile # enable module command module load intel/2025 # enable use of numerical library cd $PBS_O_WORKDIR ./test.x
実行スクリプトの例:OpenMP並列
#!/bin/bash #PBS -q Eduq #PBS -l select=1:ncpus=4 ulimit -c 0 # avoid generating core files . /etc/profile # enable module command module load intel/2025 module load intelmpi/2025 export OMP_NUM_THREADS=4 cd $PBS_O_WORKDIR ./test.x
実行スクリプトの例:ノード占有MPI
#!/bin/bash #PBS -q sRchq #PBS -l select=1:ncpus=48:mpiprocs=48:mem=256g ulimit -c 0 # avoid generating core files . /etc/profile # enable module command module load intel module load intelmpi export OMP_NUM_THREADS=1 cd $PBS_O_WORKDIR mpirun -np 48 ./test.x
実行スクリプトの例:ノード間並列
ノード間で通信を行うために,~/.sshにてパスワードなしの公開鍵,秘密鍵を作成(例:ssh-keygen -t rsa -b 4096)し,公開鍵の内容をauthorized_keysに追加してください.
#!/bin/bash #PBS -q mRchq #PBS -l select=2:ncpus=48:mpiprocs=48:mem=256g ulimit -c 0 # avoid generating core files . /etc/profile # enable module command module load intel/2025 module load intelmpi/2025 export OMP_NUM_THREADS=1 cd $PBS_O_WORKDIR mpirun -np 96 ./test.x
実行スクリプトの例:AMD GPUの利用
#!/bin/bash #PBS -q Eduq #PBS -l select=1:ncpus=1:ngpus=1 #PBS -v SINGULARYTY_IMAGE=/common/prg_env_amd_2025.01.sif ulimit -c 0 # avoid generating core files . /etc/profile # enable module command cd $PBS_O_WORKDIR ./test.x
標準/最大リソースの確認
各キューの標準/最大リソースは下記コマンドで確認できます.
qstat -Qf <キュー名>
インタラクティブジョブ
ジョブ投入方法
qsubの-Iオプションを使用することで,対話的にジョブを実行することができます.このときのキューは Eduq もしくは iEduq のいずれかを指定してください. 下記の例では1CPUコア,メモリ8GiB,1GPUのリソースを割り当てて,bashを起動しジョブの中で対話型操作(ホスト名確認,GPU確認)を行う場合の例です.GPUはジョブに割当てられたGPUのみ表示されます.
[******@ydev09 ~]$ qsub -I -q iEduq -l select=1:ncpus=1:mem=8g:ngpus=1 -v SINGULARITY_IMAGE=/common/Singularity_sif/prg_env_amd_2025.01.sif /bin/bash qsub: waiting for job 1193.ypbs0.edu.tut.ac.jp to start qsub: job 1193.ypbs0.edu.tut.ac.jp ready Singularity> hostname yind00.edu.tut.ac.jp Singularity> Singularity> nvidia-smi Wed May 28 15:49:15 2025 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 570.124.06 Driver Version: 570.124.06 CUDA Version: 12.8 | |-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 NVIDIA A100 80GB PCIe Off | 00000000:CA:00.0 Off | 0 | | N/A 40C P0 65W / 300W | 1MiB / 81920MiB | 0% Default | | | | Disabled | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | No running processes found | +-----------------------------------------------------------------------------------------+ Singularity> exit exit qsub: job 1193.ypbs0.edu.tut.ac.jp completed
コンテナイメージの指定
Singularityイメージを指定してジョブを実行することが可能です.
イメージを指定する場合SINGULARITY_IMAGE=<イメージ名>を指定してジョブを起動します./common/Singularity_sif/ に用意されているイメージの他に,ユーザが用意したイメージを指定することもできます.Singularityではイメージ内のサービス(EntryPoint)は使用できません.
イメージを指定しない場合は,自動で選択されたSingularityイメージでジョブを起動します.
実行例
下記の例ではコンテナ上でbashを起動し,unameコマンドでホスト名を確認し,pythonでdatetimeをインポートしています.
[*****@ydev09 ~]$ qsub -I -q Eduq -l select=1:ncpus=2:mem=16g -v SINGULARYTY_IMAGE=/common/Singularity_sif/prg_env_intel_2025.01.sif /bin/bash qsub: waiting for job 1191.ypbs0.edu.tut.ac.jp to start qsub: job 1191.ypbs0.edu.tut.ac.jp ready Singularity> uname -n ysnd00.edu.tut.ac.jp Singularity> python3 -c "import datetime" Singularity> exit exit qsub: job 1191.ypbs0.edu.tut.ac.jp completed
ジョブの管理
ジョブの状態を確認する
ジョブ,キューの状態確認にはqstatコマンドを利用します.
(1) ジョブキューの状態表示
qstat -q
(2) ジョブの状態表示
qstat
(3) ジョブのリソース割当て状況やQueue状態での待ち要因を表示
qstat -asw
(4) 空きリソースの確認
pbsnodes -ajS
投入したジョブをキャンセルする
ジョブのキャンセルにはqdelコマンドを使用します.
qdel jobID
job IDはqstatコマンドより確認してください.
Running状態ジョブがキャンセルできない場合は下記コマンドで強制的にジョブを終了することができます.
qdel -Wforce jobID