6.7.3. Quantum Espresso

Quantum Espressoの概要#

本サービスにプリインストールされたQuantum Espressoの利用に関する情報を記述します。下記のジョブスクリプト例では、入力データとしてQuantum Espressoのtest-suiteに含まれるtest-suite/pw_electric/electric0.inとQuantum Espressoの公式ウェブサイトにて公開されている疑ポテンシャルファイルを使用しています。

  • 入力ファイルの配備手順を以下に示します。インターネットアクセスが必要となるためログインノードで実行してください。
    $ git clone https://gitlab.com/QEF/q-e-gpu.git
    $ cp -rp q-e-gpu/test-suite/pw_electric/electric0.in (JOBを実行するディレクトリ)/
    $ wget http://pseudopotentials.quantum-espresso.org/upf_files/Si.pbe-rrkj.UPF
    $ mkdir -p ${HOME}/espresso/pseudo
    $ cp -rp Si.pbe-rrkj.UPF ${HOME}/espresso/pseudo
    

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

  • 環境設定

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

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

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

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

# Setting of SPACK
. /fefs1/app/spack/spack-0.18.0/share/spack/setup-env.sh
spack load quantum-espresso /mfu6en2

# Thread settings
export OMP_NUM_THREADS=4

# RUN Quantum Espresso
mpiexec -n 8 -ofout PWscf.out pw.x -in electric0.in

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

  • 環境設定

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

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

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 --mpi "proc=8"
#PJM -j

# Setting of SPACK
. /fefs1/app/spack/spack-0.18.0/share/spack/setup-env.sh
spack load quantum-espresso /s2krbdq

# 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 Quantum Espresso
mpiexec.hydra -n 8 pw.x -in electric0.in > PWscf.out

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

  • 環境設定

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

$ module load nvhpc/21.9
$ module load mkl/latest
$ module load quantum-espresso/7.0
$ export LD_LIBRARY_PATH=/fefs1/app/x86/intel/oneapi/intelpython/python3.9/lib:$LD_LIBRARY_PATH
  • バッチジョブのスクリプト記述例

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

#!/bin/sh
#PJM -L "gpu=8"
#PJM -L "rscunit=rscunit_pg02"
#PJM -L "rscgrp=gpu-large"
#PJM -L "elapse=1:00:00"
#PJM -j

# Setting of module & QE
module load nvhpc/21.9
module load mkl/latest
module load quantum-espresso/7.0
export LD_LIBRARY_PATH=/fefs1/app/x86/intel/oneapi/intelpython/python3.9/lib:$LD_LIBRARY_PATH

export NO_STOP_MESSAGE=y

# Thread settings
export OMP_NUM_THREADS=2

# RUN Quantum Espresso
mpirun -n 2 -mca btl vader,self pw.x -in electric0.in > PWscf.out