Quantum ESPRESSO 6.3 for LX

Webpage

https://www.quantum-espresso.org/

Version

6.3

Build Environment

  • Intel Parallel Studio 2017update4

Files Required

  • q-e-qe-6.3.tar.gz
  • want-latest.tar.gz
    • (Previously downloaded one was used for installation, since WanT server was not responding (maybe temporary). Normally installation script can download the correct archive via wget.)

Build Procedure

#!/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 ..

Tests

Built binaries passed all the tests.
(Error threshold is considerably loosened in this version.)

Notes

  • Optimization by "-O3 -xHost" does not yield performance improvement (according to some test calculations using small-benchmarks/test_4).
  • OpenMP is NOT enabled.
  • Linking with libxc (tried with version 4.2.3) was avoided this time, since some of tests failed to pass.
  • West was not embedded in this version.
    • The specified version by the script (2.0.1) is no longer available in the official sites.
    • We tried to build with 2.0.1(from qe-6.1 archive directory) or 3.1.1, but failed.
  • d3q is also not available from the official site (we couldn't understand what is going on) and so is omitted.