|
|
Here we provide a list of examples on how to install ELPA on different architectures
|
|
|
|
|
|
In the following document, we assume that when building *ELPA* on Intel based systems, Intel's MKL library will be used. If this is not the case then the SCALAPACK_FCFLAGS and SCALAPACK_LDFLAGS variables will have to be different.
|
|
|
|
|
|
**NOTE**
|
|
|
In this document everything written in **BOLD** must be changed by the user
|
|
|
|
|
|
## Building on an Haswell or Broadwell system: ##
|
|
|
|
|
|
### a) with Intel Fortran compiler (and GNU C compiler) ###
|
|
|
|
|
|
FC=**mpi_wrapper_for_intel_Fortran_compiler** \ <br/>
|
|
|
CC=**mpi_wrapper_for_gnu_C_compiler** \ <br/>
|
|
|
./configure FCFLAGS="-O3 -xAVX2" CFLAGS="-O3 -march=native -mavx2 \ <br/>
|
|
|
-mfma -funsafe-loop-optimizations -funsafe-math-optimizations \ <br/>
|
|
|
-ftree-vect-loop-version -ftree-vectorize" \ <br/>
|
|
|
--enable-option-checking=fatal \ <br/>
|
|
|
SCALAPACK_LDFLAGS="-L$MKLROOT/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 \ <br/>
|
|
|
-lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread " \ <br/>
|
|
|
SCALAPACK_FCFLAGS="-I$MKL_HOME/include/intel64/lp64"
|
|
|
|
|
|
### b) with GNU Fortran and C compiler ###
|
|
|
|
|
|
FC=**mpi_wrapper_for_gnu_Fortran_compiler** \ <br>
|
|
|
CC=**mpi_wrapper_for_gnu_C_compiler** \ <br>
|
|
|
./configure FCFLAGS="-O3 -march=native -mavx2 -mfma" \ <br>
|
|
|
CFLAGS="-O3 -march=native -mavx2 -mfma -funsafe-loop-optimizations \ <br>
|
|
|
-funsafe-math-optimizations -ftree-vect-loop-version -ftree-vectorize" \ <br>
|
|
|
--enable-option-checking=fatal \ <br>
|
|
|
SCALAPACK_LDFLAGS="-L$MKLROOT/lib/intel64 -lmkl_scalapack_lp64 -lmkl_gf_lp64 \ <br>
|
|
|
-lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread " \ <br>
|
|
|
SCALAPACK_FCFLAGS="-I$MKL_HOME/include/intel64/lp64"
|
|
|
|
|
|
## Building on a Skylake AVX-512 system: ##
|
|
|
|
|
|
### a) with Intel Fortran compiler (and GNU C compiler) ###
|
|
|
|
|
|
FC=**mpi_wrapper_for_intel_Fortran_compiler** \ <br/>
|
|
|
CC=**mpi_wrapper_for_gnu_C_compiler** \ <br/>
|
|
|
./configure FCFLAGS="-O3 -xCORE-AVX512" CFLAGS="-O3 -march=skylake-avx512 \ <br/>
|
|
|
-mfma -funsafe-loop-optimizations -funsafe-math-optimizations \ <br/>
|
|
|
-ftree-vect-loop-version -ftree-vectorize" \ <br/>
|
|
|
--enable-option-checking=fatal \ <br/>
|
|
|
SCALAPACK_LDFLAGS="-L$MKLROOT/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 \ <br/>
|
|
|
-lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread " \ <br/>
|
|
|
SCALAPACK_FCFLAGS="-I$MKL_HOME/include/intel64/lp64"
|
|
|
|
|
|
### b) with GNU Fortran and C compiler ###
|
|
|
|
|
|
FC=**mpi_wrapper_for_gnu_Fortran_compiler** \ <br>
|
|
|
CC=**mpi_wrapper_for_gnu_C_compiler** \ <br>
|
|
|
./configure FCFLAGS="-O3 -march=skylake-avx512" \ <br>
|
|
|
CFLAGS="-O3 -march=skylake-avx512 -funsafe-loop-optimizations \ <br>
|
|
|
-funsafe-math-optimizations -ftree-vect-loop-version -ftree-vectorize" \ <br>
|
|
|
--enable-option-checking=fatal \ <br>
|
|
|
SCALAPACK_LDFLAGS="-L$MKLROOT/lib/intel64 -lmkl_scalapack_lp64 -lmkl_gf_lp64 \ <br>
|
|
|
-lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread " \ <br>
|
|
|
SCALAPACK_FCFLAGS="-I$MKL_HOME/include/intel64/lp64" |
|
|
\ No newline at end of file |