new file: c/CheMPS2/CheMPS2-1.8.9-intel-2021a.eb

new file:   g/GlobalArrays/GlobalArrays-5.8-intel-2021a.eb
	new file:   h/HDF5/HDF5-1.13.1-gompi-2022a.eb
	new file:   h/HDF5/HDF5-1.13.1-iimpi-2022a.eb
	new file:   o/OpenMolcas/OpenMolcas-22.06-intel-2021a.eb
	new file:   v/VASP/VASP-6.3.1-foss-2022a.eb
	modified:   v/VASP/VASP-6.3.1-intel-2021b.eb
	new file:   w/Wannier90/Wannier90-3.1.0-foss-2022a-serial.eb
	deleted:    v/VASP/VASP-6.3.1-intel-2021b-cluster-independent.patch
	deleted:    v/VASP/VASP-6.3.1-intel-2021b-mkl=sequential.eb
This commit is contained in:
Lukas Krupcik 2022-07-08 13:49:39 +02:00
parent 4981732c93
commit 28d1706c8a
10 changed files with 309 additions and 121 deletions

View File

@ -0,0 +1,37 @@
# IT4Innovations 2022
# LK JK
easyblock = 'CMakeMake'
name = 'CheMPS2'
version = '1.8.9'
homepage = 'https://github.com/SebWouters/CheMPS2'
description = """CheMPS2 is a scientific library which contains a spin-adapted implementation of the
density matrix renormalization group (DMRG) for ab initio quantum chemistry."""
toolchain = {'name': 'intel', 'version': '2021a'}
source_urls = ['https://github.com/SebWouters/CheMPS2/archive/']
sources = ['v%(version)s.tar.gz']
checksums = ['ccd4c0d9432759d97690bf37a0333440f93513960c62d1f75842f090406a224d']
builddependencies = [
('CMake', '3.20.1'),
]
dependencies = [
('HDF5', '1.10.7'),
]
pretestopts = 'export OMP_NUM_THREADS=1 && '
runtest = 'test'
separate_build_dir = True
sanity_check_paths = {
'files': ['bin/chemps2', 'lib64/libchemps2.%s' % SHLIB_EXT, 'lib64/libchemps2.a'],
'dirs': ['include/chemps2']
}
moduleclass = 'chem'

View File

@ -0,0 +1,33 @@
# IT4Innovations 2022
# JK
easyblock = 'ConfigureMake'
name = 'GlobalArrays'
version = '5.8'
homepage = 'https://hpc.pnl.gov/globalarrays'
description = "Global Arrays (GA) is a Partitioned Global Address Space (PGAS) programming model"
toolchain = {'name': 'intel', 'version': '2021a'}
toolchainopts = {'usempi': True}
source_urls = ['https://github.com/GlobalArrays/ga/releases/download/']
sources = ['v%(version)s/ga-%(version)s.tar.gz']
checksums = ['64df7d1ea4053d24d84ca361e67a6f51c7b17ed7d626cb18a9fbc759f4a078ac']
configopts = ' --with-mpi --enable-i8'
configopts += ' --with-blas8="-L$MLROOT/lib/intel64 -lmkl_sequential -lmkl_intel_ilp64"'
configopts += ' --with-scalapack8="L$MKLROOT/lib/intel64 -lmkl_scalapack_ilp64 -lmkl_intel_ilp64 '
configopts += '-lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_ilp64 -lpthread -lm -ldl"'
# select armci network as (Comex) MPI-1 two-sided
configopts += ' --with-mpi-ts'
sanity_check_paths = {
'files': ['bin/adjust.x', 'bin/collisions.x', 'bin/ga-config', 'lib/libarmci.a',
'lib/libcomex.a', 'lib/libga.a'],
'dirs': ['include'],
}
moduleclass = 'lib'

View File

@ -0,0 +1,30 @@
# IT4Innovations 2022
# JK
name = 'HDF5'
version = '1.13.1'
homepage = 'https://portal.hdfgroup.org/display/support'
description = """HDF5 is a data model, library, and file format for storing and managing data.
It supports an unlimited variety of datatypes, and is designed for flexible
and efficient I/O and for high volume and complex data."""
toolchain = {'name': 'gompi', 'version': '2022a'}
toolchainopts = {'pic': True, 'usempi': True}
source_urls = ['https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version_major_minor)s/hdf5-%(version)s/src']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['051655873105112f7aeccd5f59ab21f35f7f4907f06921ae61aaf1ef1c71fd53']
import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
toolchainopts = {'pic': True, 'usempi': True, 'optarch': 'march=core-avx2'}
else:
toolchainopts = {'pic': True, 'usempi': True}
dependencies = [
('zlib', '1.2.12'),
('Szip', '2.1.1'),
]
moduleclass = 'data'

View File

@ -0,0 +1,30 @@
# IT4Innovations 2022
# JK
name = 'HDF5'
version = '1.13.1'
homepage = 'https://portal.hdfgroup.org/display/support'
description = """HDF5 is a data model, library, and file format for storing and managing data.
It supports an unlimited variety of datatypes, and is designed for flexible
and efficient I/O and for high volume and complex data."""
toolchain = {'name': 'iimpi', 'version': '2022a'}
toolchainopts = {'pic': True, 'usempi': True}
source_urls = ['https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version_major_minor)s/hdf5-%(version)s/src']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['051655873105112f7aeccd5f59ab21f35f7f4907f06921ae61aaf1ef1c71fd53']
import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
toolchainopts = {'pic': True, 'usempi': True, 'optarch': 'march=core-avx2'}
else:
toolchainopts = {'pic': True, 'usempi': True}
dependencies = [
('zlib', '1.2.12'),
('Szip', '2.1.1'),
]
moduleclass = 'data'

View File

@ -0,0 +1,58 @@
# IT4Innovations 2022
# JK
easyblock = 'CMakeMake'
name = 'OpenMolcas'
version = '22.06'
homepage = "https://gitlab.com/Molcas/OpenMolcas"
description = "OpenMolcas is a quantum chemistry software package"
toolchain = {'name': 'intel', 'version': '2021a'}
import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
toolchainopts = {'usempi': True, 'optarch': 'march=core-avx2', 'opt': '03'}
else:
toolchainopts = {'usempi': True}
source_urls = ['https://gitlab.com/Molcas/OpenMolcas/-/archive/v%(version)s/']
sources = ["OpenMolcas-v%(version)s.tar.gz"]
patches = ['OpenMolcas-21.06_mcpdft_deps.patch']
checksums = [
'45daca1e6465d59a43479d5509315bca9c19dedbb0a2d4bb4f26f0b443b7670d', # OpenMolcas-v22.06.tar.gz
'708763e060aa0174bbe9c0cc336b509fbf492066465908dd919452836a7a793a', # OpenMolcas-21.06_mcpdft_deps.patch
]
dependencies = [
('GlobalArrays', '5.8'),
('HDF5', '1.10.7'),
('Python', '3.9.5'),
('CheMPS2', '1.8.9'),
]
builddependencies = [('CMake', '3.20.1')]
separate_build_dir = True
preconfigopts = 'GAROOT=$EBROOTGLOBALARRAYS'
configopts = '-DLINALG=MKL -DMKLROOT=$MKLROOT '
configopts += '-DMPI=ON -DOPENMP=ON -DGA=ON '
configopts += '-DBUILD_SHARED_LIBS=ON -DTOOLS=ON -DFDE=ON '
configopts += '-DCHEMPS2=ON -DCHEMPS2_DIR=$EBROOTCHEMPS2/bin'
modextrapaths = {'PATH': ''}
modextravars = {
'MOLCAS': '%(installdir)s',
'MOLCAS_DRIVER': '%(installdir)s/pymolcas',
'MOLCAS_SOURCE': '%(installdir)s',
}
sanity_check_paths = {
'files': ['bin/dynamix.exe', 'bin/mpprop.exe', 'lib/libmolcas.%s' % SHLIB_EXT,
'sbin/help_basis', 'pymolcas'],
'dirs': ['data/', 'basis_library/'],
}
moduleclass = 'chem'

View File

@ -0,0 +1,80 @@
# IT4Innovations 2022
# JK LK
easyblock = 'MakeCp'
name = 'VASP'
version = '6.3.1'
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.
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': 'foss', 'version': '2022a'}
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']
# 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.13.1'),
('Wannier90', '3.1.0', '-serial'),
]
prebuildopts = 'cp arch/makefile.include.gnu ./makefile.include && '
# OFLAG to -O3 -march
prebuildopts += 'sed -i "s|\(OFLAG\s\+=\) -O2|\\1 -O3 -march=native|" makefile.include && '
# FFLAGS, SCALAPACK and FFTW
prebuildopts += 'sed -i "s|\(FFLAGS\s\+=\) -w -ffpe-summary=none|\\1 -FR -ffpe-summary=none|" makefile.include && '
prebuildopts += 'sed -i "s|\(SCALAPACK_ROOT\s\+?=\) /path/to/your/scalapack/installation|\\1 ${EBROOTSCALAPACK}|" makefile.include && '
prebuildopts += 'sed -i "s|\(FFTW_ROOT\s\+?=\) /path/to/your/fftw/installation|\\1 ${EBROOTFFTWMPI}|" makefile.include && '
# FLexiBLAS shadows OpenBLAS, for more info see FlexiBLAS description
prebuildopts += 'sed -i "s|\(OPENBLAS_ROOT\s\+?=\) /path/to/your/openblas/installation|\\1 ${EBROOTFLEXIBLAS}|" makefile.include && '
prebuildopts += 'sed -i "s|\(L\$(OPENBLAS_ROOT)\/lib\) -lopenblas|\\1 -lflexiblas|" makefile.include && '
# HDF5 support
prebuildopts += 'sed -i "/DVASP_HDF5/,+s|^#||" makefile.include && '
prebuildopts += 'sed -i "s|#\(HDF5_ROOT\s\+?=\) /path/to/your/hdf5/installation|\\1 ${EBROOTHDF5}|" makefile.include && '
prebuildopts += 'sed -i "/L\$(HDF5_ROOT)\/lib -lhdf5_fortran/,+s|^#||" makefile.include && '
prebuildopts += 'sed -i "/I\$(HDF5_ROOT)\/include/,+s|^#||" makefile.include && '
# Wannier90 interface
prebuildopts += 'sed -i "/DVASP2WANNIER90/,+s|^#||" makefile.include && '
prebuildopts += 'sed -i "s|#\(WANNIER90_ROOT\s\+?=\) /path/to/your/wannier90/installation|\\1 ${EBROOTWANNIER90}|" makefile.include && '
prebuildopts += 'sed -i "/L\$(WANNIER90_ROOT)\/lib -lwannier/,+s|^#||" makefile.include && '
# AMD/intel cpu
import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
prebuildopts += 'sed -i "s|-march=native|-march=znver2|g" 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 = 'phys'

View File

@ -1,53 +0,0 @@
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,66 +0,0 @@
# IT4Innovations 2022
# JK
easyblock = 'MakeCp'
name = 'VASP'
version = '6.3.1'
versionsuffix = '-mkl=sequential'
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.
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 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}
# 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 = [
'113db53c4346287c89982f52887a65d12d246e38de7ccd024e44499c4774dc66', # vasp.6.3.1.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 && '
# 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 -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 && '
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 = 'phys'

View File

@ -32,7 +32,7 @@ dependencies = [
prebuildopts = 'cp arch/makefile.include.intel ./makefile.include && ' prebuildopts = 'cp arch/makefile.include.intel ./makefile.include && '
# OFLAG = -O2 -xAVX # OFLAG to -O3 -march
prebuildopts += 'sed -i "s|\(OFLAG\s\+=\) -O2|\\1 -O3 -ip -march=xHost|" makefile.include && ' prebuildopts += 'sed -i "s|\(OFLAG\s\+=\) -O2|\\1 -O3 -ip -march=xHost|" makefile.include && '
# OBJECTS, FFLAGS and MKLROOT # OBJECTS, FFLAGS and MKLROOT
@ -61,7 +61,7 @@ if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
# VASP uses LIBS as a list of folders # VASP uses LIBS as a list of folders
prebuildopts += 'unset LIBS && ' prebuildopts += 'unset LIBS && '
buildopts = 'std gam ncl ' # 'BLACS="$LIBBLACS" SCALAPACK="$LIBSCALAPACK" ' buildopts = 'std gam ncl '
parallel = 1 parallel = 1

View File

@ -0,0 +1,39 @@
# IT4Innovations 2022
# JK
easyblock = 'MakeCp'
name = 'Wannier90'
version = '3.1.0'
versionsuffix = '-serial'
homepage = 'http://www.wannier.org'
description = """A tool for obtaining maximally-localised Wannier functions"""
toolchain = {'name': 'foss', 'version': '2022a'}
toolchainopts = {'usempi': True}
github_account = 'wannier-developers'
source_urls = [GITHUB_LOWER_SOURCE]
sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}]
patches = ['Wannier90_3x_ignore_makeinc.patch']
checksums = [
'40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz
'561c0d296e0e30b8bb303702cd6e41ded54c153d9b9e6cd9cab73858e5e2945e', # Wannier90_3x_ignore_makeinc.patch
]
buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS" LDOPTS="$FFLAGS" '
buildopts += 'LIBDIR="$LAPACK_LIB_DIR" LIBS="$LIBLAPACK" '
# compile serial version for use with VASP per
# https://www.vasp.at/wiki/index.php/Makefile.include#Wannier90_.28optional.29
#buildopts += 'COMMS=mpi'
files_to_copy = [(['wannier90.x', 'postw90.x'], 'bin'), (['libwannier.a'], 'lib')]
sanity_check_paths = {
'files': ['bin/wannier90.x', 'bin/postw90.x', 'lib/libwannier.a'],
'dirs': []
}
moduleclass = 'chem'