編集不可のページ History 添付ファイル

 

TUT HPC Cluster Wiki: ClusterSystemUsage

[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個のファイルにマージするかしないかの動作を指定する.
-j oe:標準出力に標準エラー出力をマージする
-j eo:標準エラー出力に標準出力をマージする
-j n: 標準出力と標準エラー出力をマージしない(デフォルト)

-q

-q destination

ジョブを投入するキューを指定する.

-l

-l resource_list

ジョブの実行に必要なリソース資源を指定する.

-N

-N name

ジョブ名を指定する(文字数は15文字まで).デフォルトはスクリプトでジョブが投入された場合は,スクリプトのファイル名となる.そうでない場合は,“STDIN”になる.

-m

-m mail_events

ジョブの状態をメールで通知する指定を行う.
-m n:メールを送信しない
-m a:異常終了時
-m b:処理開始時
-m e:処理終了時

-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_calculation.jpg

次に,「CASTEP Job Files」ウィンドウの「Save Files」をクリックします.

castep_job.jpg

入力ファイルは

(任意のパス)\(プロジェクト名)_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状態になります。