[Japanese|English]
クラスタシステムの利用方法
広域連携教育研究用クラスタシステムの利用方法について解説します.
目次
ログイン方法
下記ページを参照下さい。
開発環境の設定方法
計算プログラムをコンパイルする場合,並列計算用 MPI やコンパイラに応じて環境変数を設定する必要があります. 例えば,並列計算用 MPI として Intel MPI を,コンパイラとして Intel コンパイラを利用したい場合は,以下のようにコマンドを実行して環境変数を設定して下さい.なお,ログイン直後はIntel MPIとIntel コンパイラが設定されています.
$ module load intelmpi.intel
その他,以下の環境設定用コマンドが利用できます.
並列計算用MPI |
コンパイラ |
設定用コマンド |
Intel MPI |
Intel コンパイラ |
module load intelmpi.intel |
Open MPI |
Intel コンパイラ |
module load openmpi.intel |
MPICH2 |
Intel コンパイラ |
module load mpich2.intel |
MPICH1 |
Intel コンパイラ |
module load mpich.intel |
- |
Intel コンパイラ |
module load intel |
- |
PGI コンパイラ |
module load pgi |
- |
gcc コンパイラ |
module load gcc |
- |
nvcc コンパイラ |
module load cuda-5.0 |
開発環境を切り替える際には,以下のコマンドを実行し既存の環境設定を削除した後,新しい開発環境を設定します.
$ module unload 環境設定
例えば,IntelMPI, Intelコンパイラの環境から,OpenMPI,Intelコンパイラの環境へ変更する場合は,以下のようにしてください.
$ module unload intelmpi.intel $ module load openmpi.intel
ソフトウェア利用環境の設定方法
各種ソフトウエアを利用する場合,利用するソフトウエアに応じて環境変数を設定する必要があります. 例えば,Gaussianを利用したい場合は,以下のようにコマンドを実行して環境変数を設定して下さい.
$ module load gaussian09-C.01
その他,以下の環境設定用コマンドが利用できます.
ソフトウエア名 |
バージョン |
設定用コマンド |
構造解析 |
||
ANSYS Multiphysics, CFX, Fluent, LS-DYNA |
16.1 |
module load ansys16.1 |
ABAQUS |
6.12 |
module load abaqus-6.12-3 |
Patran |
2013 |
module load patran-2013 |
電磁界解析 |
||
ANSYS HFSS |
16.1 |
module load ansys.hfss16.1 |
計算物質科学 |
||
PHASE (Serial版) |
11.00 |
module load phase-11.00-serial |
PHASE (Parallel版) |
11.00 |
module load phase-11.00-parallel |
PHASE-Viewer |
3.2.0 |
module load phase-viewer-v320 |
UVSOR (Serial版) |
3.42 |
module load uvsor-v342-serial |
UVSOR (Parallel版) |
3.42 |
module load uvsor-v342-parallel |
OpenMX (Serial版) |
3.6 |
module load openmx-3.6-serial |
OpenMX (Parallel版) |
3.6 |
module load openmx-3.6-parallel |
計算化学 |
||
Gaussian |
09 Rev.C.01 |
module load gaussian09-C.01 |
|
16 Rev.A.03 |
module load gaussian16-A.03 |
NWChem (Serial版) |
6.1.1 |
module load nwchem-6.1.1-serial |
NWChem (Parallel版) |
6.1.1 |
module load nwchem-6.1.1-parallel |
GAMESS (Serial版) |
2012.R2 |
module load gamess-2012.r2-serial |
GAMESS (Parallel版) |
2012.R2 |
module load gamess-2012.r2-parallel |
MPQC |
3.0-alpha |
module load mpqc-2.4-4.10.2013.18.19 |
Amber, AmberTools (Serial版) |
12 |
module load amber12-serial |
Amber, AmberTools (Parallel版) |
12 |
module load amber12-parallel |
CONFLEX (Serial版,Parallel版) |
7 |
module load conflex7 |
技術処理 |
||
MATLAB |
R2013a |
module load matlab-R2013a |
- ANSYS, ABAQUS, Patran, GAUSSIAN, MATLABの利用には登録種別Aへの利用登録が必要です.
登録種別Aの申請方法は http://imc.tut.ac.jp/research/form を参照してください.
ソフトウエアの環境設定を削除する場合は,以下のコマンドを実行してください.
$ module unload 環境設定
例えば,Gaussianの環境設定を削除する場合は以下のようにしてください.
$ module unload gaussian09-C.01
ログイン後の環境設定方法
以下のファイルを編集することで,ログイン後の環境を自動的に設定することができます.
- shの場合: ~/.profile
- bashの場合: ~/.bash_profile
- cshの場合: ~/.cshrc
例1: bash を利用していて,ログイン後の環境設定として,ansys, gaussian, conflexを利用できるようにする場合,以下を ~/.bashrc に追加.
eval `modulecmd bash load ansys14.5` eval `modulecmd bash load gaussian09-C.01` eval `modulecmd bash load conflex7`
例2: csh を利用していて,ログイン後の環境設定として,OpenMPI, Intel Compiler, gaussian, conflexを利用できるようにする場合,以下を ~/.cshrc に追加.
eval `modulecmd tcsh unload intelmpi.intel` eval `modulecmd tcsh load openmpi.intel` eval `modulecmd tcsh load gaussian09-C.01` eval `modulecmd tcsh load conflex7`
ロードしているモジュールは以下のコマンドにより確認できます.
$ module list
利用できるモジュールは以下のコマンドにより確認できます.
$ module avail
コンパイル方法
Intel コンパイラ
C/C++ で記述された計算プログラムをコンパイルするには,以下のコマンドを実行して下さい.
$ icc ソースファイル名 -o 出力するプログラム名
Fortran で記述された計算プログラムをコンパイルするには,以下のコマンドを実行して下さい.
$ ifort ソースファイル名 -o 出力するプログラム名
PGI コンパイラ
C/C++ で記述された計算プログラムをコンパイルするには,以下のコマンドを実行して下さい.
$ pgcc ソースファイル名 -o 出力するプログラム名
Fortran で記述された計算プログラムをコンパイルするには,以下のコマンドを実行して下さい.
$ pgf90 ソースファイル名 -o 出力するプログラム名
$ pgf77 ソースファイル名 -o 出力するプログラム名
GNU コンパイラ
C/C++ で記述された計算プログラムをコンパイルするには,以下のコマンドを実行して下さい.
$ gcc ソースファイル名 -o 出力するプログラム名
Intel MPI
C/C++ で記述された計算プログラムをコンパイルするには,以下のコマンドを実行して下さい.
$ mpiicc ソースファイル名 -o 出力するプログラム名
Fortran で記述された計算プログラムをコンパイルするには,以下のコマンドを実行して下さい.
$ mpiifortソースファイル名 -o 出力するプログラム名
OpenMPI, MPICH2, MPICH1
C/C++ で記述された計算プログラムをコンパイルするには,以下のコマンドを実行して下さい.
$ mpicc ソースファイル名 -o 出力するプログラム名
Fortran で記述された計算プログラムをコンパイルするには,以下のコマンドを実行して下さい.
$ mpif90 ソースファイル名 -o 出力するプログラム名
$ mpif77 ソースファイル名 -o 出力するプログラム名
ジョブ実行方法
ジョブの管理のため,ジョブ管理システムPBS Professionalを使用しています. 必ず,PBS Professionalを利用してジョブを実行してください.
キュー構成
キュー構成は下記の通りです。
キュー名 |
利用可能ノード数(最大/標準) |
経過時間制限/ジョブ |
CPUコア数/ジョブ(最大/標準) |
メモリ容量制限/ジョブ(最大/標準) |
GPU数/ジョブ(最大/標準) |
備考 |
wEduq |
2 / 1 |
1時間 |
4 / 1 |
32GiB / 8Gib |
0 / 0 |
全ユーザが利用可能 |
wSrchq |
4 / 1 |
1時間 |
28 / 1 |
192GiB / 8Gib |
0 / 0 |
研究利用登録ユーザのみ利用可能 |
wLrchq |
14 / 1 |
336時間 |
392 / 1 |
2,688GiB / 8Gib |
0 / 0 |
研究利用登録ユーザのみ利用可能 |
gEduq |
2 / 1 |
1時間 |
4 / 1 |
32GiB / 8Gib |
2 / 1 |
全ユーザが利用可能 |
gSrchq |
4 / 1 |
1時間 |
28 / 1 |
192GiB / 8Gib |
2 / 1 |
研究利用登録ユーザのみ利用可能 |
gLrchq |
14 / 1 |
336時間 |
392 / 1 |
2,688GiB / 8Gib |
28 / 1 |
研究利用登録ユーザのみ利用可能 |
- wEduq及びgEduqは授業・学習用のキューです。長時間のジョブ実行や大量のジョブ投入など研究目的での本格的な利用はご遠慮ください。
- 授業時間中などはwEduqのために一部の計算ノードを専用に割り当てることがあります。この場合、数台の計算ノードがwEduqに占有され、それらのノードでwSrchqおよびwLrchqのジョブが実行されなくなります(利用可能ノード数が少なくなります)。
- スケジューリングできるジョブは全体で1800件です。ジョブ数(コマンド qstat -B の結果 Tot の値)が1800を超えないよう、節度ある利用をお願いします。
研究利用登録についてはこちらをご覧下さい。
ジョブ投入方法
PBS Professional用の実行スクリプトを作成し,qsubコマンドで次のようにジョブを投入します.
$ qsub -q キュー名 実行スクリプト名
例えば,研究用キューgSrchqにジョブを投入する場合は次のようにします.
$ qsub -q gSrchq 実行スクリプト名
並列数の指定は,実行スクリプト中で次のように行います.
#PBS -l select=使用ノード数:mpiprocs=1ノードあたりの並列数
例:1ノードを利用し,ノード内の並列数を16とした場合
#PBS -l select=1:mpiprocs=16
例:4ノードを利用し,各ノード内の並列数を16とした場合
#PBS -l select=4:mpiprocs=16
利用するメモリ容量を指定して実行したい場合は,実行スクリプト中で次のように記述します.
#PBS -l select=使用ノード数:mem=ノードあたりのメモリ容量:mpiprocs=1ノードあたりの並列数:
例:1ノードを利用し,ノード内の並列数を16,ジョブあたりのメモリ容量を16GBとした場合
#PBS -l select=1:mem=16gb:mpiprocs=16
利用する演算ノードを指定して実行したい場合は,次のように記述します.
#PBS -l select=1:vnode=ホストA:mpiprocs=ホストAでの並列数+1:vnode=ホストB:mpiprocs=ホストBでの並列数,・・・
例:演算ノードxsnd10,xsnd11を利用し,各ノード内の並列数を16とした場合
#PBS -l select=1:vnode=xsnd10:mpiprocs=16+vnode=xsnd11:mpiprocs=16
* 演算ノードのホスト名はcsnd00~csnd27です(システム構成-ハードウェア構成 参照).
* xsnd00,xsnd13はTesla V100を各2枚搭載しています.
GPGPUを指定して実行したい場合は,次のように記述します.ngpusにはノードあたりのGPU数(0~2)を指定します。 (GPGPUはgSrchq, gLrchq, gEduqで使用可能です)
#PBS -l select=1:ngpus=<GPU数>:ppn=1
ジョブ実行時間を指定して実行したい場合は,次のように記述します.
#PBS -l walltime=hh:mm:ss
例:ジョブ実行時間を336時間とする場合
#PBS -l walltime=336:00:00
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 DOCKER_IMAGE=<image> |
指定したDockerイメージ上でジョブを実行. |
-v SINGULARITY_IMAGE=<image> |
指定したSingularityイメージ上でジョブを実行. |
|
-I |
-I |
インタラクティブ(対話型)ジョブを実行します. |
インタラクティブジョブの実行方法
qsubの-Iオプションを使用することで、対話型にジョブを実行することができます。 下記の例では2CPUコア、メモリ16GiB、1GPUをのリソースを割当て、bashを起動しジョブの中で対話型操作(ホスト名確認、GPU確認)を行う場合の例です。GPGPUはジョブに割当てられたGPGPUのみ表示されます。
-bash-4.2$ qsub -I -q gSrchq -l select=1:ncpus=2:mem=16g:ngpus=1 -- bash qsub: waiting for job 578.xregistry0 to start qsub: job 578.xregistry0 ready bash-4.2$ uname -n xsnd00.edu.tut.ac.jp bash-4.2$ nvidia-smi Thu Sep 5 19:58:48 2019 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 418.67 Driver Version: 418.67 CUDA Version: 10.1 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla V100-PCIE... On | 00000000:3B:00.0 Off | 0 | | N/A 30C P0 23W / 250W | 0MiB / 16130MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+ bash-4.2$ exit exit qsub: job 578.xregistry0 completed
コンテナイメージの指定方法
DockerまたはSingularityコンテナ上でジョブを実行することが可能です。 Dockerを使用する場合は-v DOCKER_IMAGE=<イメージ名>、Singularityを使用する場合はSINGULARITY_IMAGE=<イメージ名>を指定してジョブを起動します。 指定可能なイメージ名は下記コマンドで確認できます。
-bash-4.2$ showimages conda3/chainer:6.3.0-ompi nvcr.io/nvidia/caffe:19.07-py2 nvcr.io/nvidia/caffe2:18.08-py3 nvcr.io/nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04 nvcr.io/nvidia/digits:19.07-caffe nvcr.io/nvidia/mxnet:19.07-py3 nvcr.io/nvidia/pytorch:19.07-py3 nvcr.io/nvidia/tensorflow:19.07-py2 nvcr.io/nvidia/tensorflow:19.07-py3 nvidia/cuda:10.1-cudnn7-devel-centos7 prg-env:2019.08
Dockerジョブの実行例
DockerジョブはDOCKER_IMAGEで指定したイメージのコンテナを作成し、コンテナ上でジョブを起動します。 Dockerイメージにサービス(EntryPoint)がある場合は、各サービスにアクセスするIPアドレス:ポート番号が表示されます。Dockerジョブのホスト名は<割当ノード名>-<ジョブ番号>になります。 下記の例ではTensorflowコンテナ上でbashを起動し、pythonでTensorflowをインポートしています。
-bash-4.2$ qsub -I -q gSrchq 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 exit qsub: job 580.xregistry0 completed
Singularityジョブの実行例
SingularityジョブはSINGULARITY_IMAGEで指定したイメージのコンテナを作成し、コンテナ上でジョブを起動します。 Singularityではイメージ内のサービス(EntryPoint)は使用できません。Singularityジョブのホスト名は通常ジョブと同様に<割当てノード名>になります。 下記の例ではTensorflowコンテナ上でbashを起動し、pythonでTensorflowをインポートしています。
-bash-4.2$ qsub -I -q gSrchq -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
サンプルスクリプト:Intel MPI - Intelコンパイラを使用する場合
### sample #!/bin/sh #PBS -q rchq #PBS -l nodes=1:ppn=16 MPI_PROCS=`wc -l $PBS_NODEFILE | awk '{print $1}'` cd $PBS_O_WORKDIR mpirun -np $MPI_PROCS ./a.out
* ジョブの投入先(eduq, rchq)はスクリプト内でも指定できます.
サンプルスクリプト:OpenMPI - Intelコンパイラを使用する場合
### sample #!/bin/sh #PBS -q rchq #PBS -l nodes=1:ppn=16 MPI_PROCS=`wc -l $PBS_NODEFILE | awk '{print $1}'` module unload intelmpi.intel module load openmpi.intel cd $PBS_O_WORKDIR mpirun -np $MPI_PROCS ./a.out
* ジョブの投入先(eduq, rchq)はスクリプト内でも指定できます.
サンプルスクリプト:MPICH2 - Intelコンパイラを使用する場合
### sample #!/bin/sh #PBS -q rchq #PBS -l nodes=1:ppn=16 MPI_PROCS=`wc -l $PBS_NODEFILE | awk '{print $1}'` module unload intelmpi.intel module load mpich2.intel cd $PBS_O_WORKDIR mpirun -np $MPI_PROCS -iface ib0 ./a.out
* MPICH2を使用する場合は,必ず,-ifaceオプションを指定してください.
* ジョブの投入先(eduq, rchq)はスクリプト内でも指定できます.
サンプルスクリプト:OpenMPプログラムを利用する場合
### sample #!/bin/sh #PBS -l nodes=1:ppn=8 #PBS -q eduq export OMP_NUM_THREADS=8 cd $PBS_O_WORKDIR ./a.out
サンプルスクリプト:MPI/OpenMPハイブリドプログラムを利用する場合
### sample #!/bin/sh #PBS -l nodes=4:ppn=8 #PBS -q eduq export OMP_NUM_THREADS=8 cd $PBS_O_WORKDIR sort -u $PBS_NODEFILE > hostlist mpirun -np 4 -machinefile ./hostlist ./a.out
サンプルスクリプト:GPGPUプログラムを利用する場合
### sample #!/bin/sh #PBS -l nodes=1:GPU:ppn=1 #PBS -q eduq cd $PBS_O_WORKDIR module load cuda-5.0 ./a.out
ANSYS Multiphysicsジョブ
シングルジョブ
以下に,実行スクリプト例を示します.
### sample #!/bin/sh #PBS -l nodes=1:ppn=1 #PBS -q eduq module load ansys14.5 cd $PBS_O_WORKDIR ansys145 -b nolist -p AA_T_A -i vm1.dat -o vm1.out -j vm1
*vm1.datは/common/ansys14.5/ansys_inc/v145/ansys/data/verifにあります.
並列ジョブ
以下に,実行スクリプト例を示します.
例:Shared Memory ANSYSを用いる場合
### sample #!/bin/sh #PBS -l nodes=1:ppn=4 #PBS -q eduq module load ansys14.5 cd $PBS_O_WORKDIR ansys145 -b nolist -p AA_T_A -i vm141.dat -o vm141.out -j vm141 -np 4
例:Distributed ANSYSを用いる場合
### sample #!/bin/sh #PBS -l nodes=2:ppn=2 #PBS -q eduq module load ansys14.5 cd $PBS_O_WORKDIR ansys145 -b nolist -p AA_T_A -i vm141.dat -o vm141.out -j vm141 -np 4 -dis
*vm141.datは/common/ansys14.5/ansys_inc/v145/ansys/data/verifにあります.
ANSYS CFXジョブ
シングルジョブ
以下に,実行スクリプト例を示します.
### sample #!/bin/sh #PBS -l nodes=1:ppn=1 #PBS -q eduq module load ansys14.5 cd $PBS_O_WORKDIR cfx5solve -def StaticMixer.def
*StaticMixer.defは/common/ansys14.5/ansys_inc/v145/CFX/examplesにあります.
並列ジョブ
以下に,実行スクリプト例を示します.
### sample #!/bin/sh #PBS -l nodes=1:ppn=4 #PBS -q eduq module load ansys14.5 cd $PBS_O_WORKDIR cfx5solve -def StaticMixer.def -part 4 -start-method 'Intel MPI Local Parallel'
*StaticMixer.defは/common/ansys14.5/ansys_inc/v145/CFX/examplesにあります.
ANSYS Fluentジョブ
シングルジョブ
以下に,実行スクリプト例を示します.
### sample #!/bin/sh #PBS -l nodes=1:ppn=1 #PBS -q eduq module load ansys14.5 cd $PBS_O_WORKDIR fluent 3ddp -g -i input-3d > stdout.txt 2>&1
並列ジョブ
以下に,実行スクリプト例を示します.
### sample #!/bin/sh #PBS -l nodes=1:ppn=4 #PBS -q eduq module load ansys14.5 cd $PBS_O_WORKDIR fluent 3ddp -g -i input-3d -t4 -mpi=intel > stdout.txt 2>&1
ANSYS LS-DYNAジョブ
シングルジョブ
以下に,実行スクリプト例を示します.
### sample #!/bin/sh #PBS -l nodes=1:ppn=1 #PBS -q eduq module load ansys14.5 cd $PBS_O_WORKDIR lsdyna145 i=hourglass.k memory=100m
*hourglass.kはLS-DYNA Examples(http://www.dynaexamples.com/)を参照してください.
ANSYS HFSSジョブ
ANSYS HFSS利用マニュアルに利用方法の詳細が説明されています。 そちらをご参照下さい。
ABAQUSジョブ
シングルジョブ
以下に,実行スクリプト例を示します.
### sample #!/bin/sh #PBS -l nodes=1:ppn=1 #PBS -q eduq module load abaqus-6.12-3 cd $PBS_O_WORKDIR abaqus job=1_mass_coarse
*1_mass_coarse.inpは/common/abaqus-6.12-3/6.12-3/samples/job_archive/samples.zipにあります.
PHASEジョブ
並列ジョブ (phaseコマンド:SCF計算)
以下に,実行スクリプト例を示します.
### sample #!/bin/sh #PBS -q eduq #PBS -l nodes=2:ppn=2 cd $PBS_O_WORKDIR module load phase-11.00-parallel mpirun -np 4 phase
* phaseの場合、入出力ファイル一式はfile_names.dataという名前のファイルで記述されます.
* 入力ファイル一式として例えば、/common/phase-11.00-parallel/sample/Si2/scf/下のサンプルなどを利用できます.
シングルジョブ (ekcalコマンド:Band計算)
以下に,実行スクリプト例を示します.
### sample #!/bin/sh #PBS -q eduq #PBS -l nodes=1:ppn=1 cd $PBS_O_WORKDIR module load phase-11.00-parallel ekcal
* ekcalの場合、入出力ファイル一式はfile_names.dataという名前のファイルで記述されます.
* 入力ファイル一式として例えば、/common/phase-11.00-parallel/sample/Si2/band/下のサンプルなどを利用できます.
* (Si2/band/のサンプルを使用するには、予め../scf/のサンプルを実行してnfchgt.dataを用意しておく必要があります。).
UVSORジョブ
並列ジョブ (epsmainコマンド:誘電率計算)
以下に,実行スクリプト例を示します.
### sample #!/bin/sh #PBS -q eduq #PBS -l nodes=2:ppn=2 cd $PBS_O_WORKDIR module load uvsor-v342-parallel mpirun -np 4 epsmain
* epsmainの場合、入出力ファイル一式はfile_names.dataという名前のファイルで記述されます.
* 入力ファイル一式として例えば、/common/uvsor-v342-parallel/sample/electron/Si/eps/下のサンプルなどを利用できます.
* (Si/eps/のサンプルを使用するには、予め、../scf/のサンプルを実行してnfchgt.dataを用意しておく必要があります。).
OpenMXジョブ
並列ジョブ
以下に,実行スクリプト例を示します.
### sample #!/bin/bash #PBS -l nodes=2:ppn=2 cd $PBS_O_WORKDIR module load openmx-3.6-parallel export LD_LIBRARY_PATH=/common/intel-2013/composer_xe_2013.1.117/mkl/lib/intel64:$LD_LIBRARY_PATH mpirun -4 openmx H2O.dat
* H2O.datは/common/openmx-3.6-parallel/work/にあります.
* ただし、H2O.datに以下の一行を追加しておく必要があります.
* DATA.PATH /common/openmx-3.6-parallel/DFT_DATA11.
GAUSSIANジョブ
サンプル入力ファイル(methane.com)
%NoSave %Mem=512MB %NProcShared=4 %chk=methane.chk #MP2/6-31G opt methane 0 1 C -0.01350511 0.30137653 0.27071342 H 0.34314932 -0.70743347 0.27071342 H 0.34316773 0.80577472 1.14436492 H 0.34316773 0.80577472 -0.60293809 H -1.08350511 0.30138971 0.27071342
シングルジョブ
以下に,実行スクリプト例を示します.
### sample #!/bin/sh #PBS -l nodes=1:ppn=1 #PBS -q eduq module load gaussian09-C.01 cd $PBS_O_WORKDIR g09 methane.com
並列ジョブ
以下に,実行スクリプト例を示します.
### sample #!/bin/sh #PBS -l nodes=1:ppn=4,mem=3gb,pvmem=3gb #PBS -q eduq cd $PBS_O_WORKDIR module load gaussian09-C.01 g09 methane.com
NWChemジョブ
サンプル入力ファイル(h2o.nw)
echo start h2o title h2o geometry units au O 0 0 0 H 0 1.430 -1.107 H 0 -1.430 -1.107 end basis * library 6-31g** end scf direct; print schwarz; profile end task scf
並列ジョブ
以下に,実行スクリプト例を示します.
### sample #!/bin/sh #PBS -q eduq #PBS -l nodes=2:ppn=2 export NWCHEM_TOP=/common/nwchem-6.1.1-parallel cd $PBS_O_WORKDIR module load nwchem.parallel mpirun -np 4 nwchem h2o.nw
GAMESSジョブ
シングルジョブ
以下に,実行スクリプト例を示します.
### sample #!/bin/bash #PBS -q eduq #PBS -l nodes=1:ppn=1 module load gamess-2012.r2-serial mkdir -p /work/$USER/scratch/$PBS_JOBID mkdir -p $HOME/scr rm -f $HOME/scr/exam01.dat rungms exam01.inp 00 1
* exam01.inpは/common/gamess-2012.r2-serial/tests/standard/にあります.
MPQCジョブ
サンプル入力ファイル(h2o.in)
% HF/STO-3G SCF water method: HF basis: STO-3G molecule: O 0.172 0.000 0.000 H 0.745 0.000 0.754 H 0.745 0.000 -0.754
並列ジョブ
以下に,実行スクリプト例を示します.
### sample #!/bin/sh #PBS -q rchq #PBS -l nodes=2:ppn=2 MPQCDIR=/common/mpqc-2.4-4.10.2013.18.19 cd $PBS_O_WORKDIR module load mpqc-2.4-4.10.2013.18.19 mpirun -np 4 mpqc -o h2o.out h2o.in
AMBERジョブ
サンプル入力ファイル(gbin-sander)
short md, nve ensemble &cntrl ntx=5, irest=1, ntc=2, ntf=2, tol=0.0000001, nstlim=100, ntt=0, ntpr=1, ntwr=10000, dt=0.001, / &ewald nfft1=50, nfft2=50, nfft3=50, column_fft=1, / EOF
サンプル入力ファイル(gbin-pmemd)
short md, nve ensemble &cntrl ntx=5, irest=1, ntc=2, ntf=2, tol=0.0000001, nstlim=100, ntt=0, ntpr=1, ntwr=10000, dt=0.001, / &ewald nfft1=50, nfft2=50, nfft3=50, / EOF
シングルジョブ
以下に,実行スクリプト例を示します.
例:sanderを用いる場合
### sample #!/bin/sh #PBS -l nodes=1:ppn=1 #PBS -q eduq module load amber12-serial cd $PBS_O_WORKDIR sander -i gbin-sander -p prmtop -c eq1.x
*prmtop, eq1.xは/common/amber12-parallel/test/4096watにあります.
例:pmemdを用いる場合
### sample #!/bin/sh #PBS -l nodes=1:ppn=1 #PBS -q eduq module load amber12-serial cd $PBS_O_WORKDIR pmemd -i gbin-pmemd -p prmtop -c eq1.x
*prmtop, eq1.xは/common/amber12-parallel/test/4096watにあります.
並列ジョブ
以下に,実行スクリプト例を示します.
例:sanderを用いる場合
### sample #!/bin/sh #PBS -l nodes=2:ppn=4 #PBS -q eduq module unload intelmpi.intel module load openmpi.intel module load amber12-parallel cd $PBS_O_WORKDIR mpirun -np 8 sander.MPI -i gbin-sander -p prmtop -c eq1.x
*prmtop, eq1.xは/common/amber12-parallel/test/4096watにあります.
例:pmemd を用いる場合
### sample #!/bin/sh #PBS -l nodes=2:ppn=4 #PBS -q eduq module unload intelmpi.intel module load openmpi.intel module load amber12-parallel cd $PBS_O_WORKDIR mpirun -np 8 pmemd.MPI -i gbin-pmemd -p prmtop -c eq1.x
*prmtop, eq1.xは/common/amber12-parallel/test/4096watにあります.
CONFLEXジョブ
サンプル入力ファイル(methane.mol)
Sample Chem3D Core 13.0.009171314173D 5 4 0 0 0 0 0 0 0 0999 V2000 0.1655 0.7586 0.0176 H 0 0 0 0 0 0 0 0 0 0 0 0 0.2324 -0.3315 0.0062 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.7729 -0.7586 0.0063 H 0 0 0 0 0 0 0 0 0 0 0 0 0.7729 -0.6729 0.8919 H 0 0 0 0 0 0 0 0 0 0 0 0 0.7648 -0.6523 -0.8919 H 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 0 2 3 1 0 2 4 1 0 2 5 1 0 M END
シングルジョブ
以下に,実行スクリプト例を示します.
### sample #!/bin/sh #PBS -l nodes=1:ppn=1 #PBS -q eduq c cd $PBS_O_WORKDIR flex7a1.ifc12.Linux.exe -par /common/conflex7/par methane
並列ジョブ
実行スクリプトを作成しqsubコマンドよりジョブを投入します. 以下に,実行スクリプト例を示します.
### sample #!/bin/sh #PBS -l nodes=1:ppn=8 #PBS -q eduq module load conflex7 cd $PBS_O_WORKDIR mpirun -np 8 flex7a1.ifc12.iMPI.Linux.exe -par /common/conflex7/par methane
MATLABジョブ
サンプル入力ファイル(matlabdemo.m)
% Sample n=6000;X=rand(n,n);Y=rand(n,n);tic; Z=X*Y;toc % after finishing work switch getenv('PBS_ENVIRONMENT') case {'PBS_INTERACTIVE',''} disp('Job finished. Results not yet saved.'); case 'PBS_BATCH' disp('Job finished. Saving results.') matfile=sprintf('matlab-%s.mat',getenv('PBS_JOBID')); save(matfile); exit otherwise disp([ 'Unknown PBS environment ' getenv('PBS_ENVIRONMENT')]); end
シングルジョブ
以下に,実行スクリプト例を示します.
### sample #!/bin/bash #PBS -l nodes=1:ppn=1 #PBS -q eduq module load matlab-R2012a cd $PBS_O_WORKDIR matlab -nodisplay -nodesktop -nosplash -nojvm -r "maxNumCompThreads(1); matlabdemo"
並列ジョブ
以下に,実行スクリプト例を示します.
### sample #!/bin/bash #PBS -l nodes=1:ppn=4 #PBS -q eduq module load matlab-R2012a cd $PBS_O_WORKDIR matlab -nodisplay -nodesktop -nosplash -nojvm -r "maxNumCompThreads(4); matlabdemo"
CASTEP/DMol3ジョブ
本学スパコンを利用してMaterials Studio CASTEP/DMol3を実行する場合,
① Materials Studio Visualiserからスパコンに対しジョブを投入する(Materials Studio2016のみ対応)
② 入力ファイルをWinscp等でスパコンに転送し「qsub」コマンドによりジョブを投入する
の二通りがあります.ここでは②について説明します.②で実行する場合,ジョブスケジューラに与えるパラメータを変更することができます.以下では,CASTEPを例に説明します.
1. Materials Studio Visualizerで入力ファイルを作成します.
「CASTEP Calculation」ウィンドウの「Files...」をクリックします.
次に,「CASTEP Job Files」ウィンドウの「Save Files」をクリックします.
入力ファイルは
(任意のパス)\(プロジェクト名)_Files\Documents\(上記操作において作成されたフォルダ)\
に保存されます.例えば,acetanilide.xsdに対してCASTEPによりエネルギー計算を行う場合、「(上記操作において作成されたフォルダ)」は「acetanilide CASTEP Energy」となります.
また,「(任意のパス)」は,通常,「C:\Users\(アカウント名)\Documents\Materials Studio Projects」です.
作成されるフォルダの名前にはスペースが含まれます.スペースを削除するか,”_”などで置換してください.また,フォルダ名に日本語が含まれてはいけません.
2. Winscp等のファイル転送ソフトを利用し,作成した入力ファイルをフォルダごと本学スパコンへ転送してください.
3. 転送したフォルダ内に下記のような実行スクリプトを作成し,「qsub」コマンドによりジョブを投入してください.
### sample #!/bin/sh #PBS -l nodes=1:ppn=8,mem=24gb,pmem=3gb,vmem=24gb,pvmem=3gb #PBS -l walltime=24:00:00 #PBS -q rchq MPI_PROCS=`wc -l $PBS_NODEFILE | awk '{print $1}'` cd $PBS_O_WORKDIR cp /common/accelrys/cdev0/MaterialsStudio8.0/etc/CASTEP/bin/RunCASTEP.sh . perl -i -pe 's/\r//' * ./RunCASTEP.sh -np $MPI_PROCS acetanilide
* RunCASTEP.shの第3引数は,転送したフォルダ内のファイル名を指定してください.拡張子は必要ありません.
* 「ppn=」は,8以下,の値を指定してください.
* 経過時間制限値,メモリ利用容量制限値は必要に応じて変更できます.
* 「CASTEP Calculation」ウィンドウの”Job Control”タブにおける「Gateway location」「Queue」「Run in parallel on」の設定はコマンドライン実行に対し意味を持ちません.qsubコマンド時に利用する実行スクリプト内の設定が用いられます.
* 実行スクリプトは利用する計算機や計算モジュールにより異なります.下記の「実行スクリプト例」をご参照ください.
4. ジョブ終了後、計算結果ファイルをクライアントPCに転送し,Materials studio Visualizerを利用して閲覧してください.
共同利用に関する注意事項
Materials Studioのライセンスは,CASTEP:8本,Dmol3:8本,を所有しています.1ライセンスで8並列以下のジョブを1つ実行することができます.本ライセンスは共用です.他のユーザーと競合しないように留意の上,ご利用をお願いします.
実行スクリプト例
広域連携教育研究用クラスタシステムでMaterials Studio 8.0 CASTEPを実行する場合:
### sample #!/bin/sh #PBS -l nodes=1:ppn=8,mem=50000mb,pmem=6250mb,vmem=50000mb,pvmem=6250mb #PBS -l walltime=24:00:00 #PBS -q wLrchq MPI_PROCS=`wc -l $PBS_NODEFILE | awk '{print $1}'` cd $PBS_O_WORKDIR cp /common/accelrys/wdev0/MaterialsStudio8.0/etc/CASTEP/bin/RunCASTEP.sh . perl -i -pe 's/\r//' * ./RunCASTEP.sh -np $MPI_PROCS acetanilide
広域連携教育研究用クラスタシステムでMaterials Studio 8.0 DMOL3を実行する場合:
### sample #!/bin/sh #PBS -l nodes=1:ppn=8,mem=50000mb,pmem=6250mb,vmem=50000mb,pvmem=6250mb #PBS -l walltime=24:00:00 #PBS -q wLrchq MPI_PROCS=`wc -l $PBS_NODEFILE | awk '{print $1}'` cd $PBS_O_WORKDIR cp /common/accelrys/wdev0/MaterialsStudio8.0/etc/DMol3/bin/RunDMol3.sh . perl -i -pe 's/\r//' * ./RunDMol3.sh -np $MPI_PROCS acetanilide
広域連携教育研究用クラスタシステムでMaterials Studio 2016 CASTEPを実行する場合:
### sample #!/bin/sh #PBS -l nodes=1:ppn=8,mem=50000mb,pmem=6250mb,vmem=50000mb,pvmem=6250mb #PBS -l walltime=24:00:00 #PBS -q wLrchq MPI_PROCS=`wc -l $PBS_NODEFILE | awk '{print $1}'` cd $PBS_O_WORKDIR cp /common/accelrys/wdev0/MaterialsStudio2016/etc/CASTEP/bin/RunCASTEP.sh . perl -i -pe 's/\r//' * ./RunCASTEP.sh -np $MPI_PROCS acetanilide
広域連携教育研究用クラスタシステムでMaterials Studio 2016 DMOL3を実行する場合:
### sample #!/bin/sh #PBS -l nodes=1:ppn=8,mem=50000mb,pmem=6250mb,vmem=50000mb,pvmem=6250mb #PBS -l walltime=24:00:00 #PBS -q wLrchq MPI_PROCS=`wc -l $PBS_NODEFILE | awk '{print $1}'` cd $PBS_O_WORKDIR cp /common/accelrys/wdev0/MaterialsStudio2016/etc/DMol3/bin/RunDMol3.sh . perl -i -pe 's/\r//' * ./RunDMol3.sh -np $MPI_PROCS acetanilide
ジョブの状態を確認する
ジョブ,キューの状態確認にはqstatコマンドを利用します.
(1) ジョブの状態表示
qstat
(2) ジョブのリソース割当て状況やQueue状態での待ち要因を表示
qstat -asw
(3) 空きリソースの確認
pbsnodes -ajS
投入したジョブをキャンセルする
ジョブのキャンセルにはqdelコマンドを使用します.
qdel jobID
job IDはqstatコマンドより確認してください.
Running状態ジョブがキャンセルできない場合は下記コマンドで強制的にジョブを終了することができます。
qdel -Wforce jobID
NVIDIA GPU Cloudコンテナの実行
NVIDIA GPU Cloud概要
NVIDIA GPU Cloud(!NGC) はディープラーニング、機械学習、HPC のために GPU で最適化されたソフトウェアのハブであり、最新のアプリケーションをDockerイメージでタイムリーに利用できます。
NVIDIA GPU Cloudコンテナの表示
NVIDIA GPU Cloudに登録されているコンテナを下記コマンドで確認できます。 NGCに登録されているイメージのリストは毎日更新されます。
showngcimages
NVIDIA GPU Cloudコンテナの利用(!調整中)
DOCKER_IMAGEまたはSINGULARITY_IMAGEでshowngcimagesコマンドで表示されるイメージを指定してジョブを投入することで、ジョブスケジューラがNGCからDockerイメージを取得、プライベートレジストリへの登録、Singularityイメージへの変換を自動的に行い、指定したコンテナジョブを実行します。
qsub -q gSrchq -v DOCKER_IMAGE=<NGCのイメージ> test.sh
NGCからのDockerイメージ取得には15分程度かかります。イメージが利用可能になるまでジョブはQueue状態になります。