6.7.4. LAMMPS

LAMMPSの概要#

本サービスにプリインストールされたLAMMPSの利用に関する情報を記述します。下記のジョブスクリプト例では、入力データとしてLAMMPSの公式サイトで公開されているin.lj.txtを使用しています。

入力ファイルの配備手順を以下に示します。インターネットアクセスが必要となるためログインノードで実行してください。

$ wget https://www.lammps.org/inputs/in.lj.txt
$ cp -rp in.lj.txt (JOBを実行するディレクトリ)/

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

  • 環境設定

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

$ module load development-studio/1.2.35
$ . /fefs1/app/spack/spack-0.18.0/share/spack/setup-env.sh
$ spack load --only package lammps /cdjxodx
  • バッチジョブのスクリプト記述例

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

#!/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=2"
#PJM -j

# Setting of Compiler
module load development-studio/1.2.35

# Setting of SPACK
. /fefs1/app/spack/spack-0.18.0/share/spack/setup-env.sh
spack load --only package lammps /cdjxodx

# Thread settings
export OMP_NUM_THREADS=2

# RUN LAMMPS
mpiexec -n 2 -ofout lmp.out lmp -in in.lj.txt

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

  • 環境設定

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

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

    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 lammps /b6hoox6

# 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 LAMMPS
mpiexec.hydra -n 8 lmp -in in.lj.txt > lmp.out

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

  • 環境設定

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

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

    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 lammps /z6opytw

# 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 LAMMPS
mpiexec.hydra -n 2 lmp -in in.lj.txt -sf gpu -pk gpu 1 > lmp.out