Quantum Espresso 6.8 (HPE)
ウェブページ
https://www.quantum-espresso.org/
バージョン
6.8
ビルド環境
- Intel oneAPI Compiler Classic 2022.2.1
- 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}/qe-${QE_VERSION}-ReleasePack.tgz
INSTDIR=/apl/qe/6.8
PARALLEL=12
# --------------------------------------------------------------------
umask 0022
module -s purge
. ~/intel/oneapi/compiler/latest/env/vars.sh
module -s load mkl/2022.2.1
module -s load openmpi/4.1.4-hpcx/intel2022.2.1
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=ifort F90=ifort F77=ifort CC=icc CXX=icpc \
FFLAGS="-O3 -assume byterecl -ip -g" \
./configure --enable-parallel --with-scalapack
# pwall(pw neb ph pp pwcond acfdt) cp ld1 tddfpt hp xspectra gwl
echo "==== all ===="
make -j${PARALLEL} all
# QEHeat code: energy flux and charge current
echo "==== all_currents ===="
make -j${PARALLEL} all_currents
#for i in epw w90 couple d3q; do
for i in epw w90 couple; do
echo "==== $i ===="
make -j${PARALLEL} $i
done
for i in yambo; do
echo "==== $i ===="
make $i
done
cd test-suite
make run-tests-serial
make clean
make run-tests-parallel
cd ..
メモ
- HPC-X 2.13.1 を使うとマルチノード並列が動作せず。runtime ライブラリを HPC-X 2.11 に切り替えることで解消
- HPC-X 利用時に [LOG_CAT_MCAST] や [LOG_CAT_P2P] のメッセージが表示される場合がある。
- mpirun に -x HCOLL_ENABLE_MCAST=0 か -mca coll_hcoll_enable 0 を追加することでエラーが表示されなくなる。
- (前者の指定の方が限定的なので無難だろうか。)
- メッセージが表示されても計算結果等には影響していないように見えている。
- mpirun に -x HCOLL_ENABLE_MCAST=0 か -mca coll_hcoll_enable 0 を追加することでエラーが表示されなくなる。