サンプルジョブの実行方法
最終更新: 2025/7/11
はじめに
RCCS では共通領域に導入したアプリケーションについて、サンプルジョブスクリプトを用意しています。
RCCS で用意したものをそのまま使う場合はもちろん、自身のディレクトリに導入した別バージョンを使う際のテンプレートとしても利用できます。
以下では Gromacs と GAMESS を例にして、サンプルをどのように実行するのかを説明します。
なお、Gaussian については、専用の g16sub/g09sub を用いた方法をまずはご覧ください。
ORCA についても専用の osub コマンドが利用できますので、こちらの利用もご検討ください。(ORCA を利用するには別途事前登録が必要です。)
導入済みアプリケーションのリスト
いくつかの方法があります。
1. ウェブページ上の情報を参照する
パッケージプログラム一覧のページに掲載されている情報で確認できます。
2. module avail コマンドの出力を見る
以下のように出力されます。通常、ジョブとして投入するようなアプリについては以下で赤で示した /apl/modules/apl 内にあります。
[user@ccfep3 ~]$ module avail
----------------------- /home/users/qf7/modules/defaults -----------------------
2022 2024 2025
----------------------------- /apl/modules/oneapi ------------------------------
compiler-rt/2022.0.2 intelmpi/2021.5.1 mkl/2022.2.1 tbb/2021.10.0
compiler-rt/2022.2.1 intelmpi/2021.7.1 mkl/2023.0.0 tbb/2021.11
...
(中略)
...
------------------------------- /apl/modules/apl -------------------------------
abcluster/3.0 gromacs/2023.2-CUDA nwchem/6.8
ABINIT-MP/v1r22 gromacs/2023.4 nwchem/7.0.2
ABINIT-MP/v2r4 gromacs/2023.4-CUDA nwchem/7.2.2
ABINIT-MP/v2r8 gromacs/2023.5 nwchem/7.2.2-CUDA
amber/20u13 gromacs/2023.5-CUDA nwchem/7.2.3
amber/22u1 gromacs/2024.2 nwchem/7.2.3-intel
amber/22u4 gromacs/2024.2-CUDA openbabel/3.1.1
amber/24u1 gromacs/2024.4 openmolcas/v21.10
...
gromacs/2022.6 ntchem/2013.13.0.0/mpi xtb/6.7.0
gromacs/2022.6-CUDA ntchem/2013.13.0.0/mpiomp xtb/6.7.1
gromacs/2023.2 ntchem/2013.13.0.0/serial
Key:
loaded directory/ auto-loaded default-version modulepath
[user@ccfep3 ~]$
(module avail コマンドはキーボードの q を押すか、画面の下までスクロールさせると終了します。)
3. /apl を参照する
OS 非標準のアプリやライブラリについては、/apl に導入されています。そちらで直接確認することもできます。
/apl/(アプリケーション名)/(バージョンやリビジョン) のようなディレクトリ構成となっています。
[user@ccfep3 /apl]$ ls
ABINIT-MP autoconf cudnn gsl namd orca
GRRM autodock cudss hpc-x nbo pbs
LigandMPNN autodock-gpu cusparselt i-pi nciplot plumed
ProteinMPNN autodock-vina dalton imolpro ninja psi4
RFDiffusionAA bio dftb+ julia ntchem qe
RFdiffusion boost dftd4 lammps nvhpc reactionplus
RoseTTAFold-AA censo dirac libtorch nwchem scalapack
abcluster cmake eigen luscus omegafold siesta
aiida colabfold elsi lustre-dev oneapi tcl
alphafold conda ffmpeg magma openbabel togl
amber cp2k gamess modules openblas turbomole
aocc crest gaussian molden openmm vmd
aocl crystal genesis molpro openmolcas xcrysden
apptainer cuda gromacs mvapich openmpi xtb
[user@ccfep3 /apl]$ ls /apl/amber
20u13 22u1 22u4 24u1 24u3
[user@ccfep3 /apl]$ ls /apl/amber/20u13
amber.csh build configure lib64 README test
amber.sh cmake dat logs recipe_at update_amber
AmberTools CMakeLists.txt doc Makefile samples updateutils
benchmarks cmake-packaging include miniconda share wget-log
bin config.h lib miniforge src
[user@ccfep3 /apl]$
サンプルファイルの場所
各アプリ向けのサンプルファイルは原則として /apl/(アプリ名)/(バージョン)/samples 以下に置いています。
例: gromacs 2024.5 のサンプルを /apl から探す
[user@ccfep3 /apl]$ ls /apl
ABINIT-MP autoconf cudnn gsl namd orca
GRRM autodock cudss hpc-x nbo pbs
LigandMPNN autodock-gpu cusparselt i-pi nciplot plumed
ProteinMPNN autodock-vina dalton imolpro ninja psi4
RFDiffusionAA bio dftb+ julia ntchem qe
RFdiffusion boost dftd4 lammps nvhpc reactionplus
RoseTTAFold-AA censo dirac libtorch nwchem scalapack
abcluster cmake eigen luscus omegafold siesta
aiida colabfold elsi lustre-dev oneapi tcl
alphafold conda ffmpeg magma openbabel togl
amber cp2k gamess modules openblas turbomole
aocc crest gaussian molden openmm vmd
aocl crystal genesis molpro openmolcas xcrysden
apptainer cuda gromacs mvapich openmpi xtb
[user@ccfep3 /apl]$ ls /apl/gromacs/
2016.5 2021.6 2022.4 2023.2-CUDA 2024.2 2024.5-CUDA
2016.6 2021.6-CUDA 2022.4-CUDA 2023.4 2024.2-CUDA 2025.2
2020.6 2021.7 2022.6 2023.4-CUDA 2024.4 2025.2-CUDA
2021.4 2021.7-CUDA 2022.6-CUDA 2023.5 2024.4-CUDA
2021.4-CUDA 2021.7-mdtest 2023.2 2023.5-CUDA 2024.5
[user@ccfep3 /apl]$ ls /apl/gromacs/2024.5
bin include lib64 samples share
[user@ccfep3 /apl]$ ls /apl/gromacs/2024.5/samples/
conf.gro grompp.mdp sample-mpi.sh sample-threadmpi.sh
cp2k sample-mpi.csh sample-threadmpi.csh topol.top
(-CUDA がついているものは GPU 版です。)
サンプルディレクトリ内のファイルについて
サンプルディレクトリ内でインプットそのものは原則一つです。
ただし、それを実行するためのジョブスクリプトについては複数ある場合があります。
例えば、シェルが違う場合、並列方式が違う場合、設定の読み込み方法が違う場合、GPU利用の有無などが挙げられます。
- 例1: sample.sh => /bin/sh を使うサンプル
- 例2: sample.csh => /bin/csh を使うサンプル
- 例3: sample-gpu.sh => /bin/sh を使い、GPU も利用するサンプル
必要に応じて中身を比較するなどしてください。
例: gamess 2022R2 の場合
実行スクリプトが3つあります(sample.csh, sample-module.sh, sample.sh)。それぞれシェルの種類や設定方法が違いますが、インプットは exam01.inp 一つです。
[user@ccfep4 ~]$ ls /apl/gamess/2022R2/samples/
exam01.inp sample.csh sample-module.sh sample.sh
例: gromacs 2024.5 の場合
こちらもいくつか sample スクリプトがありますが、インプットファイルは 1 セットだけです。
[user@ccfep4 samples]$ ls
conf.gro grompp.mdp sample-mpi.sh sample-threadmpi.sh
cp2k sample-mpi.csh sample-threadmpi.csh topol.top
- -mpi がついているものは Open MPI (HPC-X)を使った MPI 並列版です(マルチノード対応)
- -threadmpi がついているものは組み込みの thread MPI を使った並列版です(シングルノード用)
- (cp2k ディレクトリは倍精度版 gromacs と CP2K を組み合わせて QM/MM 計算を実行するサンプルです)
サンプルの実行: 一般的な手順
- まず、サンプルのファイルを自分の書き込める領域にコピーします。
- サンプルをコピーしたディレクトリで jsub sample.sh のように実行します。
- (大抵の場合は、sh ./sample.sh のような形でログインノードで実行可能にもなっています。)
- ただし、CPU 数の指定が jsub 時と変わる場合があります
- GPU を使うものについては ccfep 上では実行できません。ccfep から ccgpu にログインしてお試しください(ssh ccgpu コマンド)。
- ccgpu では GPU を 2 枚導入しておりますので、MPI 並列テストも可能です。
例1: gamess 2022R2 の場合
サンプルを ~/gamess2022R2_test で実行する場合です。
[user@ccfep4 ~]$ mkdir -p ~/gamess2022R2_test
[user@ccfep4 ~]$ cd ~/gamess2022R2_test
[user@ccfep4 gamess2022R2_test]$ cp /apl/gamess2022R2/samples/* .
[user@ccfep4 gamess2022R2_test]$ ls
exam01.inp sample-module.sh sample.csh sample.sh
[user@ccfep4 gamess2022R2_test]$ jsub sample.sh
4008689.cccms1
実行中のジョブの状況は jobinfo -c コマンドで確認できます。
[user@ccfep4 gamess2022R2_test]$ jobinfo -c
--------------------------------------------------------------------------------
Queue Job ID Name Status CPUs User/Grp Elaps Node/(Reason)
--------------------------------------------------------------------------------
H 4008689 sample.sh Run 4 user/--- -- ccc001
--------------------------------------------------------------------------------
[user@ccfep4 gamess2022R2_test]$
混雑していなければ、しばらく待てばジョブが終了し、出力結果が得られます。
[user@ccfep4 gamess2022R2_test]$ ls ~/gamess2022R2_test
exam01.dat exam01.log sample-module.sh sample.sh.e4008689
exam01.inp sample.csh sample.sh sample.sh.o4008689
[user@ccfep4 gamess2022R2_test]$
参考: sample.sh の中身について(青文字は説明文で、本来のファイルに含まれない部分です)
#!/bin/sh
#PBS -l select=1:ncpus=4:mpiprocs=4:ompthreads=1 # <= 4 コアのジョブ(1 vnode)
#PBS -l walltime=24:00:00 # <= 制限時間は 24 時間
if [ ! -z "${PBS_O_WORKDIR}" ]; then
cd ${PBS_O_WORKDIR} # <= ジョブを投入したディレクトリへ移動する。(jsub での投入時に必須の操作)
NCPUS=$(wc -l < ${PBS_NODEFILE})
else
NCPUS=4 # <= ここの二行は jsub を介さないで実行する時向けの設定
export OMP_NUM_THREADS=1
fi
module -s purge
module -s load intelmpi/2021.7.1 # <= 実行に必要な環境設定。アプリによって大きく変わります。
module -s load compiler-rt/2022.2.1
# processes per node; equal to mpiprocs value
PPN=4 # <= PPN = process per node, 一番上で定義されている mpiprocs の値と同じにする。
VERSION=2022R2
RUNGMS=/apl/gamess/${VERSION}/rungms
INPUT=exam01.inp
${RUNGMS} ${INPUT:r} 00 $NCPUS $PPN >& ${INPUT%.*}.log # <= 実際に実行するところ
例2: gromacs 2024.5 の場合
サンプルを ~/gromacs2024.5_test で実行する場合です。
[user@ccfep4 ~]$ mkdir -p ~/gromacs2024.5_test
[user@ccfep4 ~]$ cd ~/gromacs2024.5_test
[user@ccfep4 gromacs2024.5_test]$ cp /apl/gromacs/2024.5/samples/* .
[user@ccfep4 gromacs2024.5_test]$ ls
conf.gro grompp.mdp sample-mpi.sh sample-threadmpi.sh
cp2k sample-mpi.csh sample-threadmpi.csh topol.top
[user@ccfep4 gromacs2024.5_test]$ jsub sample-mpi.sh
4008695.ccpbs1
実行中のジョブの状況は jobinfo -c コマンドで確認できます。
[user@ccfep3 gromacs2024.5_test]$ jobinfo -c
--------------------------------------------------------------------------------
Queue Job ID Name Status CPUs User/Grp Elaps Node/(Reason)
--------------------------------------------------------------------------------
H 4008695 sample-mpi.sh Run 6 user/--- -- ccc001
--------------------------------------------------------------------------------
混雑していなければ、しばらく待てばジョブが終了し、出力結果が得られます。
[user@ccfep4 gromacs2024.5_test]$ ls ~/gromacs2024.5_test
conf.gro grompp.out sample-mpi.sh state.cpt
confout.gro md.logmdout.mdp sample-mpi.sh.e4008695 topol.top
cp2k mdout.mdp sample-mpi.sh.o4008695 topol.tpr
ener.edr mdrun.out sample-threadmpi.csh
grompp.mdp sample-mpi.csh sample-threadmpi.sh
[user@ccfep4 gromacs2024.5_test]$
参考: sample-mpi.sh の中身(青文字は説明文で、本来のファイルに含まれない部分です)
#!/bin/sh
#PBS -l select=1:ncpus=6:mpiprocs=6:ompthreads=1 # <= 6 コア(6 MPI ジョブ)
#PBS -l walltime=00:30:00 # <= 制限時間 30 分
if [ ! -z "${PBS_O_WORKDIR}" ]; then
cd "${PBS_O_WORKDIR}" # <= ジョブを投入したディレクトリへ移動する。(jsub での投入時に必須の操作)
NPROCS=$(wc -l < "${PBS_NODEFILE}")
else
# when jsub is NOT used # <= jsub を介さないで実行する時向けの設定
NPROCS=6
export OMP_NUM_THREADS=1
fi
module -s purge
module -s load gromacs/2024.5 # <= 環境変数などの設定は module ファイルから読み込みます
##############################################################################
N_MPI=$NPROCS
N_OMP=$OMP_NUM_THREADSgmx grompp -f grompp.mdp >& grompp.out
mpirun -n ${N_MPI} gmx_mpi mdrun -ntomp ${N_OMP} -s topol >& mdrun.out