Quantum ESPRESSO 6.3 for LX
ウェブページ
https://www.quantum-espresso.org/
バージョン
6.3
ビルド環境
- Intel Parallel Studio 2017update4
ビルドに必要なファイル
- q-e-qe-6.3.tar.gz
- want-latest.tar.gz
- (本インストール時に相手方のサーバから取得できなかったため。通常はスクリプトによる自動取得で問題ありません。)
ビルド手順
#!/bin/sh
VERSION=6.3
BASEDIR=/home/users/${USER}/Software/QE/${VERSION}
TARBALL=${BASEDIR}/q-e-qe-${VERSION}.tar.gz
INSTDIR=/local/apl/lx/espresso63
#LIBXC=${INSTDIR}/libxc-4.2.3
WANT_LATEST=${BASEDIR}/want-latest.tar.gz
PARALLEL=12
# --------------------------------------------------------------------
umask 0022
module purge
module load intel_parallelstudio/2017update4
export LANG=
export LC_ALL=C
# from $MKLROOT/tools/mkl_link_tool
MKL_SCALAPACK_LIBS=-"L${MKLROOT}/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl"
cd ${INSTDIR}
if [ -d q-e-qe-${VERSION} ]; then
mv q-e-qe-${VERSION} q-e-qe-erase
rm -rf q-e-qe-erase &
fi
tar zxf ${TARBALL}
mv q-e-qe-${VERSION}/* .
mv q-e-qe-${VERSION}/.[a-z]* .
rmdir q-e-qe-${VERSION}
export MPIF90=mpiifort
export MPIFC=mpiifort
export MPIF77=mpiifort
export MPICC=mpiicc
export MPICXX=mpiicpc
FC=ifort F90=ifort F77=ifort CC=icc \
FFLAGS="-O2 -assume byterecl -ip -g" BLAS_LIBS="-mkl=sequential" \
LAPACK_LIBS="-mkl=sequential" FFT_LIBS="-mkl=sequential" \
SCALAPACK_LIBS=$MKL_SCALAPACK_LIBS LDFLAGS="-static-intel" \
./configure --with-scalapack
# MKL instead of FFTW and add libxc
#LIBXC_ESC=`echo ${LIBXC} | sed -e 's/\//\\\\\//g'`
#sed -i -e "s/D__FFTW3/D__DFTI -D__LIBXC/" \
# -e "/^LD_LIBS/s/$/ -L${LIBXC_ESC}\/lib -lxcf90 -lxc/" \
# -e "/^IFLAGS/s/$/ -I${LIBXC_ESC}\/include/" \
# make.inc
sed -i -e "s/D__FFTW3/D__DFTI/" make.inc
cp ${WANT_LATEST} archive
echo "==== plumed ===="
make -j${PARALLEL} plumed
for i in pw cp neb ph pp pwcond ld1 xspectra upf tddfpt; do
echo "==== $i ===="
make -j${PARALLEL} $i
done
for i in want gipaw yambo gwl; do
echo "==== $i ===="
make $i
done
# i couldn't understand the situation of west and d3q
WANNIER90_VER=2.1.0
cd install; make -f plugins_makefile uncompress-w90; cd ../
PWD_ESC=`pwd | sed -e 's/\//\\\\\//g'`
sed -i -e "/include/s/.*/include ${PWD_ESC}\/wannier90-${WANNIER90_VER}\/make.inc/" wannier90-${WANNIER90_VER}/src/Makefile.2
for i in epw w90 SternheimerGW couple; do
echo "==== $i ===="
make -j${PARALLEL} $i
done
cd test-suite
make run-tests-serial
make clean
make run-tests-parallel
cd ..
テスト
全てパス。test-suite/userconfig で定義されるtoleranceのデフォルト値が変更されたことが主な原因のようです。メモ
- 最適化オプションで -O3 -xHost を有効にするとむしろ遅くなる(公式ベンチマーク small-benchmarks/test_4 での検証)
- OpenMPは有効にしていません
- libxc(4.2.3で試行)を用いると小さくない数値エラーを出すテストが複数あったため今回は回避
- Westは指定のバージョンのダウンロードができず、他バージョンを使った場合もコードが対応していないように見えたため断念
- d3q は状況が良くわからないため回避