6.7.1. GROMACS

GROMACSの概要#

本サービスにプリインストールされたGROMACSの利用に関する情報を記述します。 下記のジョブスクリプト例では、入力データとしてADH cubicのテストデータを使用しています。

  • 入力ファイルの配備手順を以下に示します。インターネットアクセスが必要となるためログインノードで実行してください。
    $ wget https://ftp.gromacs.org/pub/benchmarks/ADH_bench_systems.tar.gz
    $ tar zxvf ADH_bench_systems.tar.gz
    $ cp -rp ADH/adh_cubic/* (JOBを実行するディレクトリ)/
    

Armシステムのジョブスクリプト例#

  • 環境設定

    計算ノードで対話的に実行する場合、moduleコマンドで必要な環境設定を行ないます。

$ module load development-studio/1.2.35
$ module load gromacs/2021
  • バッチジョブのスクリプト記述例

    8MPIプロセス×4スレッド並列のバッチジョブのスクリプト例を以下に示します。

#!/bin/sh
#PJM -L "node=1"
#PJM -L "rscunit=rscunit_ft01"
#PJM -L "rscgrp=arm-small"
#PJM -L "elapse=1:00:00"
#PJM --mpi "proc=8"
#PJM -j

# Setting of module
module load development-studio/1.2.35
module load gromacs/2021

# RUN gromacs
mpiexec -n 1 gmx_mpi grompp -f pme_verlet.mdp -c conf.gro -p topol.top -o ions.tpr
mpiexec -n 8 gmx_mpi mdrun -ntomp 4 -s ions.tpr

x86システムのジョブスクリプト例#

  • 環境設定

    計算ノードで対話的に実行する場合、spackコマンドで必要な環境設定を行ないます。

$ . /fefs1/app/spack/spack-0.18.0/share/spack/setup-env.sh
$ spack load gromacs /nscnvpd
  • バッチジョブのスクリプト記述例

    8MPIプロセス×4スレッド並列のバッチジョブのスクリプト例を以下に示します。

#!/bin/sh
#PJM -L "node=1" 
#PJM -L "rscunit=rscunit_pg01" 
#PJM -L "rscgrp=x86-small" 
#PJM -L "elapse=1:00:00" 
#PJM -j

# Setting of SPACK
. /fefs1/app/spack/spack-0.18.0/share/spack/setup-env.sh
spack load gromacs /nscnvpd

# MPI settings
export I_MPI_HYDRA_HOST_FILE=${PJM_O_NODEINF}
export I_MPI_PERHOST=8
export I_MPI_HYDRA_BOOTSTRAP=rsh
export I_MPI_HYDRA_BOOTSTRAP_EXEC=/bin/pjrsh
export I_MPI_PIN_DOMAIN=omp
export I_MPI_PIN_CELL=core

# Thread settings
export OMP_NUM_THREADS=4
export KMP_STACKSIZE=8m
export KMP_AFFINITY="compact" 

# RUN gromacs
mpiexec.hydra -n 1 gmx_mpi grompp -f pme_verlet.mdp -c conf.gro -p topol.top -o ions.tpr
mpiexec.hydra -n 8 gmx_mpi mdrun -ntomp 4 -s ions.tpr

GPUシステムのジョブスクリプト例#

  • 環境設定

    計算ノードで対話的に実行する場合、spackコマンドで必要な環境設定を行ないます。

$ . /fefs1/app/spack/spack-0.18.0/share/spack/setup-env.sh
$ spack load gromacs /stfcpos
  • バッチジョブのスクリプト記述例

    2MPIプロセス×2スレッド並列のバッチジョブのスクリプト例を以下に示します。

#!/bin/sh
#PJM -L "gpu=8"                          # 使用するGPU数
#PJM -L "rscunit=rscunit_pg02"
#PJM -L "rscgrp=gpu-large"
#PJM -L "elapse=1:00:00"
#PJM -j

# Setting of SPACK
. /fefs1/app/spack/spack-0.18.0/share/spack/setup-env.sh
spack load gromacs /stfcpos

# MPI settings
export I_MPI_HYDRA_HOST_FILE=${PJM_O_NODEINF}
export I_MPI_PERHOST=2
export I_MPI_HYDRA_BOOTSTRAP=rsh
export I_MPI_HYDRA_BOOTSTRAP_EXEC=/bin/pjrsh
export I_MPI_PIN_DOMAIN=omp
export I_MPI_PIN_CELL=core

# Thread settings
export OMP_NUM_THREADS=2
export KMP_STACKSIZE=8m
export KMP_AFFINITY="compact"

# RUN gromacs
mpiexec.hydra -n 1 gmx_mpi grompp -f pme_verlet.mdp -c conf.gro -p topol.top -o ions.tpr
mpiexec.hydra -n 2 gmx_mpi mdrun -ntomp 2 -s ions.tpr -gpu_id 0