Quantum Espresso 7.4.1
Webpage
https://www.quantum-espresso.org/
https://gitlab.com/QEF/q-e
Version
7.4.1
Build Environment
- GCC 12.2.1 (gcc-toolset-12)
- Open MPI 4.1.6
- OpenBLAS 0.3.29 (lp64)
- Scalapack 2.2.2
Files Required
- q-e-qe-7.4.1.tar.gz (downloaded from gitlab)
- (hdf5, libxc, and elpa for qe 7.4 are reused for this version.)
- (some of files were downloaded in the procedure)
Build Procedure
#!/bin/sh
QE_VERSION=7.4.1
BASEDIR=/home/users/${USER}/Software/QE/${QE_VERSION}
TARBALL=${BASEDIR}/q-e-qe-${QE_VERSION}.tar.gzD3Q_ID="808acbaf012468f42147d8d6af452ec64b9e5ab0"
GIPAW_ID="3bbf5a931fc195503c3f01565ac43cac8c05db44"
ENVIRON_URL="https://github.com/environ-developers/Environ.git"WORKDIR=/gwork/users/${USER}
INSTDIR=/apl/qe/7.4.1
PARALLEL=24# ELPA, HDF5, libxc are assumed to be installed in ${INSTDIR}
CMAKE_PREFIX_PATH="${INSTDIR}/hdf5-1.14.5;${INSTDIR}/libxc-6.2.2;/apl/openblas/0.3.29-gcc/lp64"
# --------------------------------------------------------------------
umask 0022module -s purge
module -s load gcc-toolset/12
module -s load openmpi/4.1.6/gcc12
module -s load openblas/0.3.29-lp64
module -s load scalapack/2.2.2-ompi416gcc-lp64
## gui; not necessary while building
#module -s load itcl/3.4.4
#module -s load itk/3.4.2
#module -s load iwidgets/4.1.1export LANG=C
export LC_ALL=C
ulimit -s unlimitedif [ ! -d ${WORKDIR} ]; then
mkdir -p ${WORKDIR}
fi
cd ${WORKDIR}
if [ -d q-e-qe-${QE_VERSION} ]; then
mv q-e-qe-${QE_VERSION} qe-erase
rm -rf qe-erase &
fi
if [ -d Environ ]; then
mv Environ Environ-erase
rm -rf Environ-erase &
fi
tar zxf ${TARBALL}
git clone ${ENVIRON_URL} EnvironQE_WORKDIR=${WORKDIR}/q-e-qe-${QE_VERSION}
ENVIRON_WORKDIR=${WORKDIR}/Environ
# environ prep
cd ${ENVIRON_WORKDIR}
sed -i -e "s/wget -O/wget –-trust-server-names -O/" \
-e "s/curl -o/curl -L -o/" tests/check_pseudo.sh
FC=mpif90 ./configure \
--with-qe=${QE_WORKDIR} \
--enable-openmp
make -j${PARALLEL} compile# QE
cd ${QE_WORKDIR}
sed -i -e "s/wget -O/wget –-trust-server-names -O/" \
-e "s/curl -o/curl -L -o/" test-suite/check_pseudo.sh
sed -i -e "s/[^ ]* d3q/${D3Q_ID} d3q/" \
-e "s/[^ ]* qe-gipaw/${GIPAW_ID} qe-gipaw/" \
external/submodule_commit_hash_records
sed -i -e "s/elpa-20/elpa_openmp-20/" \
-e "s/NAMES elpa$/NAMES elpa elpa_openmp/" cmake/FindELPA.cmake
mkdir build && cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX=${INSTDIR} \
-DCMAKE_Fortran_COMPILER=mpif90 \
-DCMAKE_Fortran_FLAGS="-ffree-line-length-256" \
-DCMAKE_C_COMPILER=mpicc \
-DCMAKE_CXX_COMPILER=mpicxx \
-DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}" \
-DESPRESSO_PSEUDO=${INSTDIR}/pseudo \
-DBLA_VENDOR=OpenBLAS \
-DQE_ENABLE_OPENMP=ON \
-DQE_ENABLE_MPI=ON \
-DQE_ENABLE_MPI_GPU_AWARE=OFF \
-DQE_ENABLE_SCALAPACK=ON \
-DQE_ENABLE_ELPA=ON \
-DELPA_ROOT=${INSTDIR}/elpa-2024.05.001 \
-DQE_ENABLE_LIBXC=ON \
-DQE_ENABLE_HDF5=ON \
-DQE_ENABLE_PLUGINS="d3q;pw2qmcpack;gipaw" \
-DQE_ENABLE_FOX=ON \
-DQE_WANNIER90_INTERNAL=ON \
-DQE_MBD_INTERNAL=ON \
-DQE_DEVICEXLIB_INTERNAL=ON \
-DQE_ENABLE_ENVIRON=ON \
-DENVIRON_ROOT=${ENVIRON_WORKDIR} \
-DQE_ENABLE_OSCDFT=ONmake -j${PARALLEL}
make install
ln -s ${INSTDIR}/bin ${QE_WORKDIR}/bin
cp -r ${QE_WORKDIR}/pseudo ${INSTDIR}/pseudo
mv ${QE_WORKDIR}/pseudo ${QE_WORKDIR}/pseudo.org
ln -s ${INSTDIR}/pseudo ${QE_WORKDIR}/pseudo
make test
# environ test
export LD_LIBRARY_PATH="${INSTDIR}/hdf5-1.14.5/lib:${INSTDIR}/elpa-2024.05.001/lib:${LD_LIBRARY_PATH}"
export OMP_NUM_THREADS=4
cd ${ENVIRON_WORKDIR}/tests
make run-tests
Tests
- same results as 7.4, please check this page for details.
Notes
- same installation procedure as 7.4.
- HDF5, libxc, and ELPA for 7.4 are also used for this version.