Merge branch 'it4i-karolina'

This commit is contained in:
Jakub Kropacek 2022-06-17 18:40:50 +02:00 committed by anselmicz
commit cb596b4ebf
No known key found for this signature in database
GPG Key ID: 5271768D6FEA96BC
4 changed files with 139 additions and 110 deletions

View File

@ -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

View File

@ -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

View File

@ -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'

View File

@ -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'