From f5901de193215e7b99e2a0c885c32e0a5a133d49 Mon Sep 17 00:00:00 2001 From: Jakub Kropacek Date: Tue, 17 Jan 2023 07:49:10 +0100 Subject: [PATCH] modified: v/VASP/VASP-6.3.2-NVHPC-22.2-CUDA-11.6.0-adjust-makefile.patch modified: v/VASP/VASP-6.3.2-NVHPC-22.2-CUDA-11.6.0.eb new file: v/VASP/VASP-6.3.2-intel-2021b-adjust-makefile.patch new file: v/VASP/VASP-6.3.2-intel-2021b.eb --- ...HPC-22.2-CUDA-11.6.0-adjust-makefile.patch | 6 +- v/VASP/VASP-6.3.2-NVHPC-22.2-CUDA-11.6.0.eb | 6 +- ...SP-6.3.2-intel-2021b-adjust-makefile.patch | 46 ++++++++++++++ v/VASP/VASP-6.3.2-intel-2021b.eb | 61 +++++++++++++++++++ 4 files changed, 113 insertions(+), 6 deletions(-) create mode 100644 v/VASP/VASP-6.3.2-intel-2021b-adjust-makefile.patch create mode 100644 v/VASP/VASP-6.3.2-intel-2021b.eb diff --git a/v/VASP/VASP-6.3.2-NVHPC-22.2-CUDA-11.6.0-adjust-makefile.patch b/v/VASP/VASP-6.3.2-NVHPC-22.2-CUDA-11.6.0-adjust-makefile.patch index e4dec17b..ba170037 100644 --- a/v/VASP/VASP-6.3.2-NVHPC-22.2-CUDA-11.6.0-adjust-makefile.patch +++ b/v/VASP/VASP-6.3.2-NVHPC-22.2-CUDA-11.6.0-adjust-makefile.patch @@ -1,7 +1,7 @@ -# IT4Innovations 2022 +# IT4Innovations 2023 # JK -# -# Adjusts makefile.include for use within the EasyBuild environment. + +Does not include W90 because of the problems during compilation. --- arch/makefile.include.nvhpc_acc.orig 2022-09-02 21:28:42.393086358 +0200 +++ arch/makefile.include.nvhpc_acc 2022-09-02 21:28:48.142969028 +0200 @@ -16,8 +16,8 @@ diff --git a/v/VASP/VASP-6.3.2-NVHPC-22.2-CUDA-11.6.0.eb b/v/VASP/VASP-6.3.2-NVHPC-22.2-CUDA-11.6.0.eb index 8e368966..bcdbd0ec 100644 --- a/v/VASP/VASP-6.3.2-NVHPC-22.2-CUDA-11.6.0.eb +++ b/v/VASP/VASP-6.3.2-NVHPC-22.2-CUDA-11.6.0.eb @@ -33,9 +33,9 @@ toolchainopts = {'pic': True} sources = ['%(namelower)s.%(version)s.tgz'] patches = ['VASP-6.3.2-NVHPC-22.2-CUDA-11.6.0-adjust-makefile.patch'] checksums = [ - 'f7595221b0f9236a324ea8afe170637a578cdd5a837cc7679e7f7812f6edf25a', # vasp.6.3.2.tgz - # VASP-6.3.2-NVHPC-22.2-CUDA-11.6.0-adjust-makefile.patch - 'ba944e61219684af0313fc32fd64c31a0b61919b8c3829ed4651c40d60675ed3', + {'vasp.6.3.2.tgz': 'f7595221b0f9236a324ea8afe170637a578cdd5a837cc7679e7f7812f6edf25a'}, + {'VASP-6.3.2-NVHPC-22.2-CUDA-11.6.0-adjust-makefile.patch': + '397bb216387c7817c052d7224be0c1712e44830e4b66c3843e064e547ccdc0ab'}, ] dependencies = [ diff --git a/v/VASP/VASP-6.3.2-intel-2021b-adjust-makefile.patch b/v/VASP/VASP-6.3.2-intel-2021b-adjust-makefile.patch new file mode 100644 index 00000000..13493eae --- /dev/null +++ b/v/VASP/VASP-6.3.2-intel-2021b-adjust-makefile.patch @@ -0,0 +1,46 @@ +diff -ruN vasp.6.3.2.orig/arch/makefile.include.intel vasp.6.3.2/arch/makefile.include.intel +--- vasp.6.3.2.orig/arch/makefile.include.intel 2023-01-16 17:41:26.286381000 +0100 ++++ vasp.6.3.2/arch/makefile.include.intel 2023-01-16 17:44:54.472454000 +0100 +@@ -16,13 +16,13 @@ + + FREE = -free -names lowercase + +-FFLAGS = -assume byterecl -w ++FFLAGS = -FR -assume byterecl + +-OFLAG = -O2 ++OFLAG = -O3 -ip -march=xHost + 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 + +@@ -54,17 +54,17 @@ + # 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 ++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.2-intel-2021b.eb b/v/VASP/VASP-6.3.2-intel-2021b.eb new file mode 100644 index 00000000..c6b33af9 --- /dev/null +++ b/v/VASP/VASP-6.3.2-intel-2021b.eb @@ -0,0 +1,61 @@ +# IT4Innovations 2023 +# JK + +easyblock = 'MakeCp' + +name = 'VASP' +version = '6.3.2' + +homepage = 'http://www.vasp.at' +docurls = 'https://www.vasp.at/wiki/index.php/The_VASP_Manual' +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. + +To use VASP, you need an academic license from University of Vienna. Follow the instructions at https://www.vasp.at/index.php/faqs. + +Please send us a list of authorized users and their IDs for which you need access (use only http://support.it4i.cz/rt). We are responsible for verifying your licenses.""" + +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.2-intel-2021b-adjust-makefile.patch'] +checksums = [ + {'vasp.6.3.2.tgz': 'f7595221b0f9236a324ea8afe170637a578cdd5a837cc7679e7f7812f6edf25a'}, + {'VASP-6.3.2-intel-2021b-adjust-makefile.patch': + '007efcd2c0ba05145615c6df21726d6f95460fae2ed7f7478349f09e14023676'}, +] + +# use serial compilation of W90, see https://www.vasp.at/wiki/index.php/Makefile.include#Wannier90_.28optional.29 +# Important: In case of Wannier90 3.x, you should compile a serial version by removing COMMS=mpi in the make.inc of Wannier90. +dependencies = [ + ('HDF5', '1.12.1', '-parallel'), + ('Wannier90', '3.1.0', '-serial'), +] + +prebuildopts = 'cp arch/makefile.include.intel ./makefile.include && ' + +# AMD/Intel CPU switch - We set xHost by default; change it to -march=core-avx2 when necessary +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + prebuildopts += 'sed -i "s|-xHOST|-march=core-avx2|" makefile.include && ' + prebuildopts += 'sed -i "s|-march=xHost|-march=core-avx2|" makefile.include && ' + +# VASP uses LIBS as a list of folders +prebuildopts += 'unset LIBS && ' + +buildopts = 'std gam ncl ' + +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 = 'chem'