ONCVPS-psmlcompilation
ONCVpsp-psml : able to generate psml, upf, ncpp format
oncvpsp-psml-master(downloaded at 2024.01.04) or oncvpsp-psml-psml-4.0.1
Compile using GNUcompilers (gcc, gfortran)
Dependency:
xmlf90-1.6.3
lapack-3.12.0
libxc-3.0.1 (Optional)
Check the sys_make_incs/gfortran-no-libxc.make.inc not to use external LibXC.
xmlf90 (Version: 1.6.3)
Compilers: gnu
./autogen.sh
./configure --prefix=/home/me/modules/xmlf90-1.6.3
make
make check
make install
** Automake (>=1.14) is required. But version 1.13 also works. Modify a line in configure.ac like AM_INIT_AUTOMAKE([1.13 tar-pax]) if the version of your Automake is 1.13.
lapack (3.12.0)
For gnu compiler with cmake
cmake -S. -B_build -DCMAKE_INSTALL_PREFIX=/home/me/modules/lapack-3.12.0/gnu
cmake --build _build -j4
cmake --install _build
For gnu compiler with automake
cp INSTALL/make.inc.gfortran make.inc
make
** To install other directory, make the target directory and modify path to install in make.inc.
**
For Intel compilers
** You may use LAPACK in MKL rather than compile LAPACK.
=======================================================
PEXSI v2.0.0
Using Intel fortran, C, MKL libraries.
cp config/make.inc.CRAY_XC30.intel make.inc
Edit make.inc
CC = mpiicc
CXX = mpiicpc
FC = mpiifort
LOADER = mpiicpc
# PEXSI directory
PEXSI_DIR = /home/me/modules/pexsi/v2.0.0_intel
PEXSI_BUILD_DIR = $(PEXSI_DIR)/_build
PEXSI_INSTALL_DIR = /home/me/modules/pexsi/v2.0.0_intel
# Required libraries directories
MKLROOT = <...>/compilers_and_libraries_2019.3.199/linux/mkl
SUPERLU_DIST_DIR = /home/me/modules/superlu_dist/v7.2.0_intel
METIS_DIR = /home/me/modules/v4.0.3_intel
PARMETIS_DIR = /home/me/modules/v4.0.3_intel
PTSCOTCH_DIR =
SCOTCH_DIR = ${PTSCOTCH_DIR}
LAPACK_DIR = $(MKLROOT)/lib/intel64_lin
BLAS_DIR = $(MKLROOT)/lib/intel64_lin
# Includes
PEXSI_INCLUDE = -I${PEXSI_DIR}/include
SUPERLU_DIST_INCLUDE = -I/home/me/modules/superlu_dist/v7.2.0_intel/include
PARMETIS_INCLUDE = -I/home/me/modules/parmetis/v4.0.3_intel/include
INCLUDES = ${PEXSI_INCLUDE} ${SUPERLU_DIST_INCLUDE} ${PARMETIS_INCLUDE} ${COREDUMPER_INCLUDE}
# Libraries
FORTRAN_LIB = -lifcore
BLACS_LIB = -Wl,-rpath,$(MKLROOT)/lib/intel64_lin/ -L$(MKLROOT)/lib/intel64_lin/ -lmkl_blacs_intelmpi_lp64
SCALAPACK_LIB = -Wl,-rpath,$(MKLROOT)/lib/intel64_lin/ -L$(MKLROOT)/lib/intel64_lin/ -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_core -lmkl_sequential
METIS_LIB = -L${PARMETIS_DIR}/lib -lmetis
PARMETIS_LIB = -L${PARMETIS_DIR}/lib -lparmetis
DSUPERLU_LIB = /home/me/modules/superlu_dist/v7.2.0_intel/lib64/libsuperlu_dist.a
PEXSI_LIB = ${PEXSI_DIR}/src/libpexsi_${SUFFIX}.a
LAPACK_LIB = -L$(MKLROOT)/lib/intel64_lin -lmkl_intel_lp64 -lmkl_sequential -lmkl_core
=============================
elpa 2020.05.001 (elpa_2021.05.002 ; elpa_2021.11.001)
Check the elpa-2021.11.001/documentation/INSTALL.md
#### 2.7.2 Intel cores supporting AVX-512 (Skylake and newer) ####
We recommend that you build ELPA with the Intel compiler (if available) for the Fortran part, but
with GNU compiler for the C part.
....
3. Building with Intel Fortran compiler and Intel C compiler:
Remarks:
- you have to know the name of the Intel Fortran compiler wrapper
- you have to specify the Intel C compiler
- you should specify compiler flags for Intel Fortran compiler; in the example only "-O3 -xCORE-AVX512" is set
- you should be careful with the CFLAGS, the example shows typical flags
```
FC=mpi_wrapper_for_intel_Fortran_compiler CC=mpi_wrapper_for_intel_C_compiler ./configure FCFLAGS="-O3 -xCORE-AVX512" CFLAGS="-O3 -xCORE-AVX512" --enable-option-checking=fatal SCALAPACK_LDFLAGS="-L$MKLROOT/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread " SCALAPACK_FCFLAGS="-I$MKL_HOME/include/intel64/lp64" --enable-avx2 --enable-avx512
Note, Intel fortran and GCC compiler were recommanded but the version of GCC compiler in Bomb is too low to compile with AVX512.
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH: /home/me/modules/elpa/v2020.05.001_intel/lib/pkgconfig"
echo $PKG_CONFIG_PATH
MKLROOT="<...>/compilers_and_libraries_2019.3.199/linux/mkl" \
cmake -S. -B_build_all -DCMAKE_INSTALL_PREFIX=/home/me/siesta-5.0.1/mpi_std \
-DSCALAPACK_LIBRARY="-L${MKLROOT}/lib/intel64_lin -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64" \
-DLAPACK_LIBRARY_DIR=${MKLROOT}/lib/intel64_lin -DBLAS_LIBRARY_DIR=${MKLROOT}/lib/intel64_lin \
-DMPI_Fortran_COMPILER=mpiifort -DCMAKE_Fortran_COMPILER=ifort -DCMAKE_C_COMPILER=icc \
-DSIESTA_WITH_FFTW=ON -DSIESTA_WITH_DFTD3=ON -DSIESTA_WITH_FLOOK=ON \
-DSIESTA_WITH_LIBXC=ON \
-DSIESTA_WITH_WANNIER90=ON \
-DSIESTA_WITH_ELPA=ON \
-DSIESTA_WITH_PEXSI=ON -DPEXSI_ROOT="/home/me/modules/pexsi/v2.0.0_intel" \
-DPEXSI_LIBRARIES="/home/me/modules/pexsi/v2.0.0_intel/lib/libpexsi_intel.a" \
-DPEXSI_INCLUDE_DIR="/home/me/modules/pexsi/v2.0.0_intel/include" \
-DPARMETIS_LIBRARIES="/home/me/modules/parmetis/v4.0.3_intel/lib/libparmetis.a" \
-DMETIS_LIBRARIES="/home/me/modules/parmetis/v4.0.3_intel/lib/libmetis.a" \
-DSUPERLU_DIST_LIBRARIES="-L/home/me/modules/superlu_dist/v7.2.0_intel/lib64 -lsuperlu_dist -lsuperlu_dist_fortran" \
-DCMAKE_PREFIX_PATH="/home/me/modules/libxc/v6.2.2_intel_mpi;"
Search on the web to see how to use CMAKE_PREFIX_PATH and PKG_CONFIG_PATH.