Here how to compile Quantum-ESPRESSO 6.6 on smith@Morikawa Group, Osaka University.
First of all, make sure that the modules are loaded properly. In this tutorial, the following modules are used:
intel/2020.2.254 intelmpi/2020.2.254 python/3.8
To load the above modules, add the following in ${HOME}/.bashrc:
module load intel/2020.2.254 module load intelmpi/2020.2.254 module load python/3.8
Make sure that old settings for intel compiler are deleted/commented out.
Let us first make directories for source codes, pseudopotentials, and calculations for Quantum-ESPRESSO in the home directory, for e.g.
$ mkdir -p QE/src $ mkdir -p QE/pseudo $ mkdir -p QE/out
In the ${HOME}/QE/src directory, type
$ git clone -b 'qe-6.6' --depth 1 https://gitlab.com/QEF/q-e.git qe-6.6
If "qe-6.6" is not specified, "q-e" is generated. One can also do
$ wget https://gitlab.com/QEF/q-e/-/archive/qe-6.6/q-e-qe-6.6.tar.bz2
and untar
$ tar jxf q-e-qe-6.6.tar.bz2 $ mv q-e-qe-6.6 qe-6.6
In qe-6.6, execute the following
$ MPIF90=mpiifort DFLAGS='-D__OPENMP -D__FFTW3 -D__MPI -D__SCALAPACK' SCALAPACK_LIBS='-L${MKLROOT}/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64' ./configure --enable-openmp
The following option may be added to FFLAGS* in "make.inc"
-xSSE4.2 -axCOMMON-AVX512,CORE-AVX512,CORE-AVX2,CORE-AVX-I,AVX
Then type Furthermore, the following should be added (not to be overwritten) to IFLAGS in "make.inc"
-I$(MKLROOT)/include/fftw
Then type
$ make pw
Other programs can be found by just typing
$ make
I usually build PW as well as PP by typing
$ make pw pp
If you like to perform phonon calculations do
$ make ph
According to the makefile
$ make yambo
to build yambo, but it failed (see an alternative way (experimental)).
Alternatively, I build yambo as follows:
First download the latest stable version of yambo:
$ wget https://github.com/yambo-code/yambo/archive/4.5.2.tar.gz
and untar
$ tar zxvf 4.5.2.tar.gz
Go to the yambo directory
$ cd yambo-4.5.2
and configure: (without scalapack)
PFC="mpiifort" \ FC="ifort" \ F77="ifort" \ ./configure \ --enable-mpi \ --enable-open-mp \ --enable-dp \ --with-lapack-libs="-mkl=parallel" \ --with-blas-libs="-mkl=parallel" \ --with-fft-libs="-mkl=parallel" \ --with-iotk-path="/home/ikutaro/QE/src/qe-6.6/iotk" \
(with scalapack)
$ PFC="mpiifort" \ FC="ifort" \ F77="ifort" \ ./configure \ --enable-mpi \ --enable-open-mp \ --enable-dp \ --with-iotk-path="/home/${HOME}/QE/src/qe-6.6/iotk" \ --with-blas-libs="-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm" \ --with-lapack-libs="-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm" \ --with-fft-includedir="-I${MKLROOT}/include/fftw" \ --with-fft-libs="-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm" \ --with-blacs-libs="-lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -lmkl_core -liomp5 -lpthread -lm" \ --with-scalapack-libs="-lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -lmkl_core -liomp5 -lpthread -lm"
NOTE that even though libxc is specified explicitly, the internal ones are built (I hope to figure out why in near future).
Finally we are able to build yambo and tools as:
$ make yambo ypp p2y
and the executables can be found in the bin/ directory.