Makefile.include.gnu ompi mkl omp: Difference between revisions
No edit summary |
No edit summary |
||
(One intermediate revision by one other user not shown) | |||
Line 8: | Line 8: | ||
-Davoidalloc \ | -Davoidalloc \ | ||
-Dvasp6 \ | -Dvasp6 \ | ||
-Dtbdyn \ | -Dtbdyn \ | ||
-Dfock_dblbuf \ | -Dfock_dblbuf \ | ||
Line 20: | Line 19: | ||
FREE = -ffree-form -ffree-line-length-none | FREE = -ffree-form -ffree-line-length-none | ||
FFLAGS = -w -ffpe-summary= | FFLAGS = -w -ffpe-summary=none | ||
OFLAG = -O2 | OFLAG = -O2 | ||
OFLAG_IN = $(OFLAG) | OFLAG_IN = $(OFLAG) | ||
DEBUG = -O0 | DEBUG = -O0 | ||
# For what used to be vasp.5.lib | # For what used to be vasp.5.lib | ||
Line 52: | Line 47: | ||
# When compiling on the target machine itself, change this to the | # When compiling on the target machine itself, change this to the | ||
# relevant target when cross-compiling for another architecture | # relevant target when cross-compiling for another architecture | ||
VASP_TARGET_CPU ?= -march=native | |||
FFLAGS += $(VASP_TARGET_CPU) | |||
# For gcc-10 and higher (comment out for older versions) | # For gcc-10 and higher (comment out for older versions) | ||
FFLAGS += -fallow-argument-mismatch | FFLAGS += -fallow-argument-mismatch | ||
# Intel MKL | # Intel MKL for FFTW, BLAS, LAPACK, and scaLAPACK | ||
MKLROOT ?= /path/to/your/mkl/installation | MKLROOT ?= /path/to/your/mkl/installation | ||
LLIBS_MKL = -L$(MKLROOT)/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -lgomp -lpthread -lm -ldl | |||
INCS = -I$(MKLROOT)/include/fftw | INCS = -I$(MKLROOT)/include/fftw | ||
# HDF5-support (optional but strongly recommended) | # Use a separate scaLAPACK installation (optional but recommended in combination with OpenMPI) | ||
# Comment out the two lines below if you want to use scaLAPACK from MKL instead | |||
SCALAPACK_ROOT ?= /path/to/your/scalapack/installation | |||
LLIBS_MKL = -L$(SCALAPACK_ROOT)/lib -lscalapack -L$(MKLROOT)/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl | |||
LLIBS += $(LLIBS_MKL) | |||
# HDF5-support (optional but strongly recommended, and mandatory for some features) | |||
#CPP_OPTIONS+= -DVASP_HDF5 | #CPP_OPTIONS+= -DVASP_HDF5 | ||
#HDF5_ROOT ?= /path/to/your/hdf5/installation | #HDF5_ROOT ?= /path/to/your/hdf5/installation | ||
Line 73: | Line 76: | ||
#LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier | #LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier | ||
# For the fftlib library ( | # For the fftlib library (hardly any benefit in combination with MKL's FFTs) | ||
#CPP_OPTIONS+= -Dsysv | #CPP_OPTIONS+= -Dsysv | ||
#FCL += fftlib.o | #FCL += fftlib.o | ||
Line 80: | Line 83: | ||
#LIBS += fftlib | #LIBS += fftlib | ||
#LLIBS += -ldl | #LLIBS += -ldl | ||
# For machine learning library vaspml (experimental) | |||
#CPP_OPTIONS += -Dlibvaspml | |||
#CPP_OPTIONS += -DVASPML_USE_CBLAS | |||
#CPP_OPTIONS += -DVASPML_USE_MKL | |||
#CPP_OPTIONS += -DVASPML_DEBUG_LEVEL=3 | |||
#CXX_ML = mpic++ -fopenmp | |||
#CXXFLAGS_ML = -O3 -std=c++17 -pedantic-errors -Wall -Wextra | |||
#INCLUDE_ML = | |||
</pre> | </pre> | ||
---- | ---- | ||
[[makefile.include]] | |||
[[Category:VASP]] | [[Category:VASP]] | ||
[[Category:Installation]] | [[Category:Installation]] |
Latest revision as of 13:45, 18 December 2024
# Default precompiler options CPP_OPTIONS = -DHOST=\"LinuxGNU\" \ -DMPI -DMPI_BLOCK=8000 -Duse_collective \ -DscaLAPACK \ -DCACHE_SIZE=4000 \ -Davoidalloc \ -Dvasp6 \ -Dtbdyn \ -Dfock_dblbuf \ -D_OPENMP CPP = gcc -E -C -w $*$(FUFFIX) >$*$(SUFFIX) $(CPP_OPTIONS) FC = mpif90 -fopenmp FCL = mpif90 -fopenmp FREE = -ffree-form -ffree-line-length-none FFLAGS = -w -ffpe-summary=none OFLAG = -O2 OFLAG_IN = $(OFLAG) DEBUG = -O0 # For what used to be vasp.5.lib CPP_LIB = $(CPP) FC_LIB = $(FC) CC_LIB = gcc CFLAGS_LIB = -O FFLAGS_LIB = -O1 FREE_LIB = $(FREE) OBJECTS_LIB = linpack_double.o # For the parser library CXX_PARS = g++ LLIBS = -lstdc++ ## ## Customize as of this point! Of course you may change the preceding ## part of this file as well if you like, but it should rarely be ## necessary ... ## # When compiling on the target machine itself, change this to the # relevant target when cross-compiling for another architecture VASP_TARGET_CPU ?= -march=native FFLAGS += $(VASP_TARGET_CPU) # For gcc-10 and higher (comment out for older versions) FFLAGS += -fallow-argument-mismatch # Intel MKL for FFTW, BLAS, LAPACK, and scaLAPACK MKLROOT ?= /path/to/your/mkl/installation LLIBS_MKL = -L$(MKLROOT)/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -lgomp -lpthread -lm -ldl INCS = -I$(MKLROOT)/include/fftw # Use a separate scaLAPACK installation (optional but recommended in combination with OpenMPI) # Comment out the two lines below if you want to use scaLAPACK from MKL instead SCALAPACK_ROOT ?= /path/to/your/scalapack/installation LLIBS_MKL = -L$(SCALAPACK_ROOT)/lib -lscalapack -L$(MKLROOT)/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl LLIBS += $(LLIBS_MKL) # HDF5-support (optional but strongly recommended, and mandatory for some features) #CPP_OPTIONS+= -DVASP_HDF5 #HDF5_ROOT ?= /path/to/your/hdf5/installation #LLIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran #INCS += -I$(HDF5_ROOT)/include # For the VASP-2-Wannier90 interface (optional) #CPP_OPTIONS += -DVASP2WANNIER90 #WANNIER90_ROOT ?= /path/to/your/wannier90/installation #LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier # For the fftlib library (hardly any benefit in combination with MKL's FFTs) #CPP_OPTIONS+= -Dsysv #FCL += fftlib.o #CXX_FFTLIB = g++ -fopenmp -std=c++11 -DFFTLIB_USE_MKL -DFFTLIB_THREADSAFE #INCS_FFTLIB = -I./include -I$(MKLROOT)/include/fftw #LIBS += fftlib #LLIBS += -ldl # For machine learning library vaspml (experimental) #CPP_OPTIONS += -Dlibvaspml #CPP_OPTIONS += -DVASPML_USE_CBLAS #CPP_OPTIONS += -DVASPML_USE_MKL #CPP_OPTIONS += -DVASPML_DEBUG_LEVEL=3 #CXX_ML = mpic++ -fopenmp #CXXFLAGS_ML = -O3 -std=c++17 -pedantic-errors -Wall -Wextra #INCLUDE_ML =