Compiling Quantum Espresso
From URCFwiki
http://www.quantum-espresso.org/
Contents
Suggested
Standard Proteus nodes
- intel/composerxe/2015.1.133
- proteus-openmpi/intel/2015/1.8.1-mlnx-ofed
New Proteus (Intel Sky Lake) nodes
- intel/composerxe/2019u1
- proteus-openmpi/intel/2019/3.1.4
Compilation Options
- -O3 -xHost
- use MKL; see Compiling for Intel with Intel Composer XE, MKL, and Intel MPI#MKL Link Line Advisor
- if the authors of the code you are compiling have set up the makefiles or build scripts properly, you should not have to set the MKL-related options
Running
- Use fixed16 or fixed40 PEs
OBSOLETE
Compiled using Intel Compilers. See Compiling for Intel with Intel Composer XE, MKL, and Intel MPI.
Environment
Modules needed:
shared proteus sge/univa gcc/4.8.1 intel/compiler intel/mkl intel-mpi/64
Environment variables:
export CC=icc export F77=ifort export F90=ifort export MPIF90=mpiifort
Download
Individually from http://www.qe-forge.org/gf/project/q-e/frs/?action=FrsReleaseBrowse&frs_package_id=18
[juser@proteusi01 ~]$ mkdir src [juser@proteusi01 ~]$ cd src [juser@proteusi01 src]$ wget ....../espresso-X.Y.tar.gz [juser@proteusi01 src]$ tar xf espresso-X.Y.tar.gz
Configure
[juser@proteusa01 espress-X.Y]$ ./configure --prefix=$HOME/espresso --enable-parallel --enable-openmp --enable-shared --with-scalapack=intel | tee Configure.out
Check the file Configure.out to see that all the appropriate libraries were picked up:
The following libraries have been found: BLAS_LIBS= -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core LAPACK_LIBS= SCALAPACK_LIBS=-lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 FFT_LIBS=-lfftw3xf_intel ... Parallel environment detected successfully.\ Configured for compilation of parallel executables. For more info, read the ESPRESSO User's Guide (Doc/users-guide.tex). -------------------------------------------------------------------- configure: success
Modify make.sys
CFLAGS = -O3 -xAVX -ipo $(DFLAGS) $(IFLAGS) ... FFLAGS = -O3 -xAVX -ipo -assume byterecl -g -traceback -par-report0 -vec-report0 -openmp ... AR = xiar
Build
[juser@proteusi01 espresso-X.Y]$ make -j 16 pw | tee Make.pw.out
Running
Since this uses Intel MPI, the intelmpi parallel environment (PE) must be requested in the job script, e.g.
#$ -pe intelmpi 128 ... ### "-rmk sge" specifies Grid Engine integration ### -np not necessary singe GE integration allows pw.x to read number of slots from the environment mpirun -rmk sge pw.x ...