2. Amberの使用方法

2.1. Amberの実行

2.1.1. インタラクティブ実行

ログイン方法を参考にログインノードにログイン後、インタラクティブノードを利用したX転送を参考にノードをX転送付きで確保して下さい。
以下以降の例では、全て計算ノードにログインした状態で行います。

2.1.1.1. CUI実行

以下はあくまでもコマンドサンプルです。実際の計算にはmdin,prmtop,inpcrdなどのインプットファイルや初期パラメータを記載したファイルが必要となります。

(1) インタラクティブでの逐次処理の場合の利用手順を以下に示します。

$ cd <利用したいディレクトリ>
$ module load amber/16
$ sander [-O|A] -i mdin -o mdout -p prmtop -c inpcrd -r restrt

(2) インタラクティブでの並列処理(sander.MPI)の場合の利用手順を以下に示します。

$ cd <利用したいディレクトリ>
$ module load amber/16
$ mpirun -np [並列数] sander.MPI [-O|A] -i mdin -o mdout -p prmtop -c inpcrd -r restrt

(3) インタラクティブでのGPU逐次処理(pmemd.cuda)の場合の利用手順を以下に示します。

$ cd <利用したいディレクトリ>
$ module load amber/16_cuda
$ pmemd.cuda [-O] -i mdin -o mdout -p prmtop -c inpcrd -r restrt

(4) インタラクティブでのGPU並列処理(pmemd.cuda.MPI)の場合の利用手順を以下に示します。

$ cd <利用したいディレクトリ>
$ module load amber/16_cuda
$ mpirun -np [並列数] pmemd.cuda.MPI [-O] -i mdin -o mdout -p prmtop -c inpcrd -r restrt

2.1.1.2. GUI実行

例では2時間接続で、割り当てノードとしてr0i0n0が割り当てられた場合を想定しております。
割り当てノードはコマンド実行時に空いているノードですので、明示的にノードを指定することはできません。

#qrshの実行

$ qrsh -g [TSUBAME3グループ] -l s_core=1 -l h_rt=2:00:00
r0i0n0:~> . /etc/profile.d/modules.sh
r0i0n0:~> module load amber16up10_cuda
r0i0n0:~> xleap
-I: Adding /apps/t3/sles12sp2/isv/amber/amber16up10_with_cuda/dat/leap/prep to search path.
-I: Adding /apps/t3/sles12sp2/isv/amber/amber16up10_with_cuda/dat/leap/lib to search path.
-I: Adding /apps/t3/sles12sp2/isv/amber/amber16up10_with_cuda/dat/leap/parm to search path.
-I: Adding /apps/t3/sles12sp2/isv/amber/amber16up10_with_cuda/dat/leap/cmd to search path.

**xleapの画面**

2.1.2. バッチジョブスケジューラーUGEによる実行

以下はあくまでもコマンドサンプルです。 実際の計算にはprmtop,inpcrdなどの初期パラメータを記載したファイルが必要となります。
バッチキューシステムの場合の利用手順を以下に示します。

$ cd <利用したいディレクトリ>
parallel.shを利用する場合
$ qsub parallel.sh

スクリプト例:CPU並列処理

#!/bin/bash
#プライオリティ
#$ -p -5
#実行ディレクトリ:カレントディレクトリ
#$ -cwd
#$ -N amber_parallel_test_job #job名
#送信先メールアドレス
#$ -M ambertest[at]o.cc.titech.ac.jp
#エラーメッセージファイル名、設定なしだとスクリプト.e.JOBID
#$ -e uge.err
#標準出力ファイル名、設定なしだとスクリプト.o.JOBID
#$ -o uge.out
#*必須:資源タイプの指定
#$ -l h_node=2
#*必須:時間指定
#$ -l h_rt=0:10:00
#$ -V

#CPU数の設定と設定の出力
export NSLOTS=28
echo Running on host `hostname`
echo "UGE job id: $JOB_ID"
echo Time is `date`
echo Directory is `pwd`
echo This job runs on the following processors:
echo This job has allocated $NSLOTS processors


#利用ファイルの指定
in=./mdin
out=./mdout_para
inpcrd=./inpcrd
top=./top

#インプットファイルをスクリプト内に書き込む場合の処理
cat <<eof > $in
 Relaxtion of trip cage using
&cntrl                                                                        
  imin=1,maxcyc=5000,irest=0, ntx=1,
  nstlim=10, dt=0.001,
  ntc=1, ntf=1, ioutfm=1
  ntt=9, tautp=0.5,
  tempi=298.0, temp0=298.0,
  ntpr=1, ntwx=20,
  ntb=0, igb=8,
  nkija=3, gamma_ln=0.01,
  cut=999.0,rgbmax=999.0,
  idistr=0
 /
eof

#モジュールの呼び出し
. /etc/profile.d/modules.sh
module load amber/16up_10

#sander.mpiの実行
mpirun -np $NSLOTS \
sander.MPI -O -i $in -c $inpcrd -p $top -o $out < /dev/null

#不必要なファイルの削除
/bin/rm -f $in restrt

スクリプト例:GPU並列処理

#!/bin/bash
#$ -p -5
#$ -cwd
#$ -N amber_cuda_parallel_test_job
#$ -m e
#$ -e uge.err
#$ -o uge.out
#$ -l h_node=2
#$ -l h_rt=0:30:0
#$ -V

export NSLOTS=8
echo Running on host `hostname`
echo "UGE job id: $JOB_ID"
echo Time is `date`
echo Directory is `pwd`
echo This job runs on the following GPUs:
echo This job has allocated $NSLOTS GPUs

in=./mdin
out=./mdout
inpcrd=./inpcrd
top=./top

cat <<eof > $in
FIX (active) full dynamics ( constraint dynamics: constant volume)
&cntrl
   ntx = 7,       irest = 1,
   ntpr = 100,     ntwx = 0,     ntwr = 0,
   ntf = 2,       ntc = 2,       tol = 0.000001,
   cut = 8.0,
   nstlim = 500,  dt = 0.00150,
   nscm = 250,
   ntt = 0,
   lastist = 4000000,
   lastrst = 6000000,
 /
eof

. /etc/profile.d/modules.sh
module load amber/16_cuda

mpirun -np $NSLOTS \
pmemd.cuda.MPI -O -i $in -c $inpcrd -p $top -o $out < /dev/null

/bin/rm -f $in restrt