diff --git a/v/VASP/VASP-6.3.0-intel-2021b-mkl=sequential.eb b/v/VASP/VASP-6.3.0-intel-2021b-mkl=sequential.eb index ff76f502..c82adc74 100644 --- a/v/VASP/VASP-6.3.0-intel-2021b-mkl=sequential.eb +++ b/v/VASP/VASP-6.3.0-intel-2021b-mkl=sequential.eb @@ -1,5 +1,5 @@ -# IT4Innovations 2021 -# LK JK +# IT4Innovations 2022 +# JK easyblock = 'MakeCp' @@ -12,9 +12,11 @@ description = """The Vienna Ab initio Simulation Package (VASP) is a local_compu materials modelling, e.g. electronic structure calculations and quantum-mechanical molecular dynamics, from first principles. +Starting from version 6.3.0, we have decided to compile VASP with HDF5 and Wannier90 support. + To use VASP, You need academic licenses from University of Wiena. Follow the instructions https://www.vasp.at/index.php/faqs. -Then send us please a list of authorized users and their ID for which you need this access. Please use only http://support.it4i.cz/rt. We are responsible to verify your licenses. After succesfull verification You will be granted to use VASP in our enviroment.""" +Then send us please a list of authorized users and their ID for which you need this access. Please use only http://support.it4i.cz/rt. We are responsible for verifying your licenses. After succesful verification You will be granted access to VASP in our enviroment.""" toolchain = {'name': 'intel', 'version': '2021b'} toolchainopts = {'pic': True, 'usempi': True} @@ -22,36 +24,35 @@ toolchainopts = {'pic': True, 'usempi': True} # Vasp is proprietary software, see http://www.vasp.at/index.php/faqs on # how to get access to the code sources = ['%(namelower)s.%(version)s.tgz'] +patches = ['VASP-6.3.1-intel-2021b-cluster-independent.patch'] +checksums = [ + 'adcf83bdfd98061016baae31616b54329563aa2739573f069dd9df19c2071ad3', # vasp.6.3.0.tgz + # VASP-6.3.1-intel-2021b-cluster-independent.patch + '074393cb052982469e2b8d67363f69807b75584564b1bd2e51eaf56085d3951c', +] +# cluster independent settings - Wannier90 and HDF5 settings, FFLAGS etc. +dependencies = [ + ('HDF5', '1.12.1', '-parallel'), + ('Wannier90', '3.1.0', '-serial'), +] + +# copy over makefile.include for intel toolchain prebuildopts = 'cp arch/makefile.include.intel ./makefile.include && ' -# AMD/intel cpu +# Cluster specific options! +# check for each VASP version to make sure it's consistent import os if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: - prebuildopts += 'sed -i "s|-xHOST|-march=core-avx2|" makefile.include && ' - -# path to libfftw3xf_intel.a is hardcoded in makefile.include -prebuildopts += 'sed -i "s|\$(MKLROOT)/interfaces/fftw3xf|\$(FFTW_LIB_DIR)|" makefile.include && ' - -# remove mkl flag to prevent mixing dynamic libs with the static libs in -# LIBBLACS/SCALAPACK -prebuildopts += 'sed -i "s|-mkl=sequential ||" makefile.include && ' - -# OFLAG = -O2 -xAVX -prebuildopts += 'sed -i "s|OFLAG = -O2|OFLAG = -O3 -ip -march=xHost|" makefile.include && ' - -# objects add MKLROOT -prebuildopts += 'sed -i "s|OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o|OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o \$(MKLROOT)/lib/intel64_lin/libfftw3xf_intel.a|" makefile.include && ' - -prebuildopts += 'sed -i "s|FFLAGS = -assume byterecl -w|FFLAGS = -FR -assume byterecl|" makefile.include && ' -prebuildopts += 'sed -i "s|BLAS =|BLAS = -mkl=sequential|" makefile.include && ' + prebuildopts += 'sed -i -e "s|\(OFLAG\s\+=\) -O2|\\1 -O3 -ip -march=core-avx2|" makefile.include && ' + prebuildopts += 'sed -i "s|-xHOST|-march=core-avx2|" makefile.include && ' +else: + prebuildopts += 'sed -i -e "s|\(OFLAG\s\+=\) -O2|\\1 -O3 -ip -march=xHost|" makefile.include && ' # VASP uses LIBS as a list of folders prebuildopts += 'unset LIBS && ' -#prebuildopts += 'exit 1' - -buildopts = 'std gam ncl ' # 'BLACS="$LIBBLACS" SCALAPACK="$LIBSCALAPACK" ' +buildopts = ' std gam ncl ' parallel = 1 diff --git a/v/VASP/VASP-6.3.1-intel-2021b-cluster-independent.patch b/v/VASP/VASP-6.3.1-intel-2021b-cluster-independent.patch new file mode 100644 index 00000000..c137db7a --- /dev/null +++ b/v/VASP/VASP-6.3.1-intel-2021b-cluster-independent.patch @@ -0,0 +1,53 @@ +IT4Innovations 2022 +JK + +This patch makes cluster independent changes to the compilation process: +namely, it mostly sets paths to relevant libraries. +Cluster specific changes should be specified in easyconfig through CLUSTERNAME variable. +diff -ru vasp.6.3.1.orig/arch/makefile.include.intel vasp.6.3.1/arch/makefile.include.intel +--- vasp.6.3.1.orig/arch/makefile.include.intel 2022-06-17 17:40:07.266733000 +0200 ++++ vasp.6.3.1/arch/makefile.include.intel 2022-06-17 17:40:07.253626000 +0200 +@@ -16,13 +16,13 @@ + + FREE = -free -names lowercase + +-FFLAGS = -assume byterecl -w ++FFLAGS = -FR -assume byterecl + + OFLAG = -O2 + OFLAG_IN = $(OFLAG) + DEBUG = -O0 + +-OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o ++OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o ${EBROOTIMKLMINFFTW}/lib/libfftw3xf_intel.a + OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o + OBJECTS_O2 += fft3dlib.o + +@@ -53,18 +53,18 @@ + + # Intel MKL (FFTW, BLAS, LAPACK, and scaLAPACK) + # (Note: for Intel Parallel Studio's MKL use -mkl instead of -qmkl) +-FCL += -qmkl=sequential +-MKLROOT ?= /path/to/your/mkl/installation ++#FCL += -qmkl=sequential ++MKLROOT ?= ${MKLROOT} + LLIBS += -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 + INCS =-I$(MKLROOT)/include/fftw + + # HDF5-support (optional but strongly recommended) +-#CPP_OPTIONS+= -DVASP_HDF5 +-#HDF5_ROOT ?= /path/to/your/hdf5/installation +-#LLIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran +-#INCS += -I$(HDF5_ROOT)/include ++CPP_OPTIONS+= -DVASP_HDF5 ++HDF5_ROOT ?= ${EBROOTHDF5} ++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 ++CPP_OPTIONS += -DVASP2WANNIER90 ++WANNIER90_ROOT ?= ${EBROOTWANNIER90} ++LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier diff --git a/v/VASP/VASP-6.3.1-intel-2021b-mkl=sequential-HDF5-Wannier.eb b/v/VASP/VASP-6.3.1-intel-2021b-mkl=sequential-HDF5-Wannier.eb deleted file mode 100644 index 7a36b41a..00000000 --- a/v/VASP/VASP-6.3.1-intel-2021b-mkl=sequential-HDF5-Wannier.eb +++ /dev/null @@ -1,86 +0,0 @@ -# IT4Innovations 2021 -# LK JK - -easyblock = 'MakeCp' - -name = 'VASP' -version = '6.3.1' -versionsuffix = '-mkl=sequential-HDF5-1.12.1-Wannier90-3.1.0' - -homepage = 'http://www.vasp.at' -description = """The Vienna Ab initio Simulation Package (VASP) is a local_computer program for atomic scale -materials modelling, e.g. electronic structure calculations and quantum-mechanical molecular dynamics, -from first principles. - -This is a customized compilation which includes HDF5 library and an interface to Wannier90. - -To use VASP, You need academic licenses from University of Wiena. Follow the instructions https://www.vasp.at/index.php/faqs. - -Then send us please a list of authorized users and their ID for which you need this access. Please use only http://support.it4i.cz/rt. We are responsible to verify your licenses. After succesfull verification You will be granted to use VASP in our enviroment.""" - -toolchain = {'name': 'intel', 'version': '2021b'} -toolchainopts = {'pic': True, 'usempi': True} - -# Vasp is proprietary software, see http://www.vasp.at/index.php/faqs on -# how to get access to the code -sources = ['%(namelower)s.%(version)s.tgz'] -checksums = ['113db53c4346287c89982f52887a65d12d246e38de7ccd024e44499c4774dc66'] - -dependencies = [ - ('HDF5', '1.12.1', '-parallel'), - ('Wannier90', '3.1.0', '-serial'), -] - -prebuildopts = 'cp arch/makefile.include.intel ./makefile.include && ' - -# AMD/intel cpu -import os -if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: - prebuildopts += 'sed -i "s|-xHOST|-march=core-avx2|" makefile.include && ' - -# path to libfftw3xf_intel.a is hardcoded in makefile.include -prebuildopts += 'sed -i "s|\$(MKLROOT)/interfaces/fftw3xf|\$(FFTW_LIB_DIR)|" makefile.include && ' - -# remove mkl flag to prevent mixing dynamic libs with the static libs in -# LIBBLACS/SCALAPACK -prebuildopts += 'sed -i "s|-mkl=sequential ||" makefile.include && ' - -# OFLAG = -O2 -xAVX -prebuildopts += 'sed -i "s|OFLAG = -O2|OFLAG = -O3 -ip -march=xHost|" makefile.include && ' - -# objects add MKLROOT -prebuildopts += 'sed -i "s|OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o|OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o \$(MKLROOT)/lib/intel64_lin/libfftw3xf_intel.a|" makefile.include && ' - -prebuildopts += 'sed -i "s|FFLAGS = -assume byterecl -w|FFLAGS = -FR -assume byterecl|" makefile.include && ' -prebuildopts += 'sed -i "s|BLAS =|BLAS = -mkl=sequential|" makefile.include && ' - -# HDF5-support -prebuildopts += 'sed -i "s|#CPP_OPTIONS+= -DVASP_HDF5|CPP_OPTIONS += -DVASP_HDF5|" makefile.include && ' -prebuildopts += 'sed -i "s|#HDF5_ROOT ?= /path/to/your/hdf5/installation|HDF5_ROOT ?= ${EBROOTHDF5}|" makefile.include && ' -prebuildopts += 'sed -i "s|#LLIBS += -L\$(HDF5_ROOT)/lib -lhdf5_fortran|LLIBS += -L\$(HDF5_ROOT)/lib -lhdf5_fortran|" makefile.include && ' -prebuildopts += 'sed -i "s|#INCS += -I\$(HDF5_ROOT)/include|INCS += -I\$(HDF5_ROOT)/include|" makefile.include && ' - -# Wannier90 interface -prebuildopts += 'sed -i "s|#CPP_OPTIONS += -DVASP2WANNIER90|CPP_OPTIONS += -DVASP2WANNIER90|" makefile.include && ' -prebuildopts += 'sed -i "s|#WANNIER90_ROOT ?= /path/to/your/wannier90/installation|WANNIER90_ROOT ?= ${EBROOTWANNIER90}|" makefile.include && ' -prebuildopts += 'sed -i "s|#LLIBS += -L\$(WANNIER90_ROOT)/lib -lwannier|LLIBS += -L\$(WANNIER90_ROOT)/lib -lwannier|" makefile.include && ' - -# VASP uses LIBS as a list of folders -prebuildopts += 'unset LIBS && ' - -#prebuildopts += 'exit 1' - -buildopts = 'std gam ncl ' # 'BLACS="$LIBBLACS" SCALAPACK="$LIBSCALAPACK" ' - -parallel = 1 - -files_to_copy = [(['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], 'bin')] - -sanity_check_paths = { - 'files': ['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], - 'dirs': [] -} - -modluafooter = 'add_property("state","license")' - -moduleclass = 'phys' diff --git a/v/VASP/VASP-6.3.1-intel-2021b-test.eb b/v/VASP/VASP-6.3.1-intel-2021b-test.eb new file mode 100644 index 00000000..3f2bc714 --- /dev/null +++ b/v/VASP/VASP-6.3.1-intel-2021b-test.eb @@ -0,0 +1,61 @@ +# IT4Innovations 2022 +# JK + +easyblock = 'MakeCp' + +name = 'VASP' +version = '6.3.1' +versionsuffix = '-test' + +homepage = 'http://www.vasp.at' +description = """The Vienna Ab initio Simulation Package (VASP) is a local_computer program for atomic scale +materials modelling, e.g. electronic structure calculations and quantum-mechanical molecular dynamics, +from first principles. + +This is a customized compilation which includes HDF5 library and an interface to Wannier90. + +To use VASP, You need academic licenses from University of Wiena. Follow the instructions https://www.vasp.at/index.php/faqs. + +Then send us please a list of authorized users and their ID for which you need this access. Please use only http://support.it4i.cz/rt. We are responsible to verify your licenses. After succesfull verification You will be granted to use VASP in our enviroment.""" + +toolchain = {'name': 'intel', 'version': '2021b'} +toolchainopts = {'pic': True, 'usempi': True} + +# Vasp is proprietary software, see http://www.vasp.at/index.php/faqs on +# how to get access to the code +sources = ['%(namelower)s.%(version)s.tgz'] +patches = ['VASP-6.3.1-HDF5-WANNIER.patch'] +checksums = [ + '113db53c4346287c89982f52887a65d12d246e38de7ccd024e44499c4774dc66', # vasp.6.3.1.tgz + '5da3eda9adbf29554070f839fe770a7b64494a3e60d2fd1040d577a620fa046d', # VASP-6.3.1-HDF5-WANNIER.patch +] + +dependencies = [ + ('HDF5', '1.12.1', '-parallel'), + ('Wannier90', '3.1.0', '-serial'), +] + +prebuildopts = 'cp arch/makefile.include.intel ./makefile.include && ' + +# AMD/intel cpu +#import os +#if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: +# prebuildopts += 'sed -i "s|-xHOST|-march=core-avx2|" makefile.include && ' + +# VASP uses LIBS as a list of folders +prebuildopts += 'unset LIBS && ' + +buildopts = 'std gam ncl ' # 'BLACS="$LIBBLACS" SCALAPACK="$LIBSCALAPACK" ' + +parallel = 1 + +files_to_copy = [(['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], + 'dirs': [] +} + +modluafooter = 'add_property("state","license")' + +moduleclass = 'phys'