Quantum Espresso 6.8 with GPU support (HPE)
ウェブページ
https://www.quantum-espresso.org/
バージョン
6.8
ビルド環境
- NVIDIA HPC SDK 22.11 (nompi version)
- Intel MKL 2022.2.1
- HPC-X 2.11 (Open MPI 4.1.4)
- 実際のビルドには HPC-X 2.13.1 を使用。後で runtime のみ HPC-X 2.11 に切り替え。以下では HPC-X 2.11 を使ったとして記述
ビルドに必要なファイル
- qe-6.8-ReleasePack.tgz
ビルド手順
#!/bin/sh
QE_VERSION=6.8
BASEDIR=/home/users/${USER}/Software/QE/${QE_VERSION}
TARBALL=${BASEDIR}-hpe/qe-${QE_VERSION}-ReleasePack.tgz
INSTDIR=/apl/qe/6.8-gpu
PARALLEL=12
CUDA_HOME=/apl/nvhpc/22.11/Linux_x86_64/22.11/cuda/11.8
# --------------------------------------------------------------------
umask 0022
module -s purge
module -s load nvhpc/22.11-nompi
module -s load mkl/2022.2.1
module -s load openmpi/4.1.5-hpcx/nv22
export LANG=C
export LC_ALL=C
ulimit -s unlimited
cd ${INSTDIR}
if [ -d qe-${QE_VERSION} ]; then
mv qe-${QE_VERSION} qe-erase
rm -rf qe-erase &
fi
tar zxf ${TARBALL}
mv qe-${QE_VERSION}/* .
mv qe-${QE_VERSION}/.[a-z]* .
rmdir qe-${QE_VERSION}
sed -i -e "s/wget -O/wget –-trust-server-names -O/" \
-e "s/curl -o/curl -L -o/" test-suite/check_pseudo.sh
export MPIF90=mpif90
export MPIFC=mpif90
export MPIF77=mpif90
export MPICC=mpicc
export MPICXX=mpicxx
FC=nvfortran F90=nvfortran F77=nvfortran CC=nvc CXX=nvc++ \
./configure --enable-openmp \
--enable-openacc \
--with-scalapack=no \
--with-cuda=${CUDA_HOME} \
--with-cuda-cc=80 \
--with-cuda-runtime=11.8
# force to add curand to library list
sed -i -e "s/cusolver/cusolver,curand/" make.inc
# https://gitlab.com/QEF/q-e/-/issues/358
sed -i -e "s/libqemod.a/libqemod.a ..\/..\/upflib\/libupf.a/" \
TDDFPT/tools/Makefile \
GWW/simple_ip/Makefile \
GWW/gww/Makefile \
GWW/simple_bse/Makefile
# pwall(pw neb ph pp pwcond acfdt) cp ld1 tddfpt hp xspectra gwl
echo "==== all ===="
make -j${PARALLEL} all
cd test-suite
make pseudo
#make run-tests-serial
#make clean
#make run-tests-parallel
cd ..
メモ
- テストはログインノードでは実行できないため、別途 GPU ノードにて実行
- (cd test-suite && make pseudo だけはあらかじめログインノードで実行)
- pw_vdw のテストで beef-spin, beef, vdw-d3 が失敗。条件変えても改善せず。
- HPC-X 2.13.1 利用時はマルチノード計算が失敗。runtime ライブラリを HPC-X 2.11 にすることで改善。