From 2d0837939b8cb20abcbc02a7278bf4206b6effdc Mon Sep 17 00:00:00 2001 From: Lukas Krupcik Date: Fri, 6 Sep 2024 14:46:47 +0200 Subject: [PATCH] new file: h/HDF5/HDF5-1.14.3-iimpi-2024a.eb new file: n/netCDF-Fortran/netCDF-Fortran-4.6.1-iimpi-2024a.eb new file: n/netCDF/netCDF-4.9.2-iimpi-2024a.eb new file: s/Szip/Szip-2.1.1-GCCcore-13.3.0.eb new file: v/VASP/VASP-6.4.3-intel-2023b.eb new file: w/Wannier90/Wannier90-3.1.0-intel-2024a-serial.eb --- h/HDF5/HDF5-1.14.3-iimpi-2024a.eb | 36 ++++++++++ .../netCDF-Fortran-4.6.1-iimpi-2024a.eb | 35 ++++++++++ n/netCDF/netCDF-4.9.2-iimpi-2024a.eb | 70 +++++++++++++++++++ s/Szip/Szip-2.1.1-GCCcore-13.3.0.eb | 32 +++++++++ v/VASP/VASP-6.4.3-intel-2023b.eb | 61 ++++++++++++++++ .../Wannier90-3.1.0-intel-2024a-serial.eb | 39 +++++++++++ 6 files changed, 273 insertions(+) create mode 100644 h/HDF5/HDF5-1.14.3-iimpi-2024a.eb create mode 100644 n/netCDF-Fortran/netCDF-Fortran-4.6.1-iimpi-2024a.eb create mode 100644 n/netCDF/netCDF-4.9.2-iimpi-2024a.eb create mode 100644 s/Szip/Szip-2.1.1-GCCcore-13.3.0.eb create mode 100644 v/VASP/VASP-6.4.3-intel-2023b.eb create mode 100644 w/Wannier90/Wannier90-3.1.0-intel-2024a-serial.eb diff --git a/h/HDF5/HDF5-1.14.3-iimpi-2024a.eb b/h/HDF5/HDF5-1.14.3-iimpi-2024a.eb new file mode 100644 index 00000000..30bc8da5 --- /dev/null +++ b/h/HDF5/HDF5-1.14.3-iimpi-2024a.eb @@ -0,0 +1,36 @@ +# IT4Innovations +# LK 2024 + +name = 'HDF5' +# Note: Odd minor releases are only RCs and should not be used. +version = '1.14.3' + +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': '2024a'} + +import os +# core-avx2 is required due to a but in fortran compiler +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + toolchainopts = {'pic': True, 'usempi': True, 'optarch': 'march=core-avx2'} +else: + 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 = ['09cdb287aa7a89148c1638dd20891fdbae08102cf433ef128fd345338aa237c7'] + +# replace src include path with installation dir for $H5BLD_CPPFLAGS +_regex = 's, -I[^[:space:]]+H5FDsubfiling , -I%(installdir)s/include ,g' +postinstallcmds = ['sed -i -r "%s" %%(installdir)s/bin/%s' % (_regex, x) for x in ['h5c++', 'h5pcc']] + +dependencies = [ + ('zlib', '1.3.1'), + ('Szip', '2.1.1'), +] + +moduleclass = 'data' diff --git a/n/netCDF-Fortran/netCDF-Fortran-4.6.1-iimpi-2024a.eb b/n/netCDF-Fortran/netCDF-Fortran-4.6.1-iimpi-2024a.eb new file mode 100644 index 00000000..ffda2306 --- /dev/null +++ b/n/netCDF-Fortran/netCDF-Fortran-4.6.1-iimpi-2024a.eb @@ -0,0 +1,35 @@ +# IT4Innovations +# LK 2024 + +name = 'netCDF-Fortran' +version = '4.6.1' + +homepage = 'https://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'iimpi', 'version': '2024a'} +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + toolchainopts = {'usempi': True, 'opt': True, 'optarch': 'march=core-avx2'} +else: + toolchainopts = {'usempi': True, 'opt': True} + +source_urls = ['https://github.com/Unidata/netcdf-fortran/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['40b534e0c81b853081c67ccde095367bd8a5eead2ee883431331674e7aa9509f'] + +builddependencies = [ + ('M4', '1.4.19'), +] + +dependencies = [ + ('netCDF', '4.9.2'), + ('bzip2', '1.0.8'), +] + +# (too) parallel build fails, but single-core build is fairly quick anyway (~1min) +parallel = 1 + +moduleclass = 'data' diff --git a/n/netCDF/netCDF-4.9.2-iimpi-2024a.eb b/n/netCDF/netCDF-4.9.2-iimpi-2024a.eb new file mode 100644 index 00000000..f33be649 --- /dev/null +++ b/n/netCDF/netCDF-4.9.2-iimpi-2024a.eb @@ -0,0 +1,70 @@ +# IT4Innovations +# LK 2024 +# rucne kompilovat, pak jen --module-only +# po cmake pridat -lmpi do netcdf.pc nc-config libnetcdf.settings + +name = 'netCDF' +version = '4.9.2' + +homepage = 'https://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'iimpi', 'version': '2024a'} +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + toolchainopts = {'usempi': True, 'opt': True, 'optarch': 'march=core-avx2'} +else: + toolchainopts = {'usempi': True, 'opt': True} + +source_urls = ['https://github.com/Unidata/netcdf-c/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = [ + 'netCDF-4.9.0_skip-nasa-test.patch', +] +checksums = [ + {'v4.9.2.tar.gz': 'bc104d101278c68b303359b3dc4192f81592ae8640f1aee486921138f7f88cb7'}, + '19d99e03c048b037dc01f03f5b8ddc910ebaceb076d0f050540d348f26dfcd2a', # netCDF-4.9.0_skip-nasa-test.patch +] + +builddependencies = [ + ('Autotools', '20231222'), + ('CMake', '3.29.3'), + ('Doxygen', '1.11.0'), +] + +dependencies = [ + ('HDF5', '1.14.3'), + ('cURL', '8.7.1'), + ('Szip', '2.1.1'), + ('zstd', '1.5.6'), + ('bzip2', '1.0.8'), + ('libxml2', '2.12.7'), +] + +# disable Szip, zlib parallel I/O tests, since these can hang on some systems, e.g. generoso +# see: https://github.com/easybuilders/easybuild-easyconfigs/pull/16834 +# and https://github.com/easybuilders/easybuild-easyconfigs/pull/17107#issuecomment-1432947172 +# and https://github.com/easybuilders/easybuild-easyconfigs/pull/18523#issuecomment-1675313158 +preconfigopts = ("sed -i -e 's|@MPIEXEC@ -n 16 ./tst_parallel3|echo \"skipped by EasyBuild\"|g'" + " -e 's|@MPIEXEC@ -n 4 ./tst_parallel5|echo \"skipped by EasyBuild\"|g'" + " -e 's|@MPIEXEC@ -n 4 ./tst_parallel_zlib|echo \"skipped by EasyBuild\"|g'" + " -e 's|@MPIEXEC@ -n 4 ./tst_parallel_compress|echo \"skipped by EasyBuild\"|g'" + " %(builddir)s/%(namelower)s-c-%(version)s/nc_test4/run_par_test.sh.in &&") + +# make sure both static and shared libs are built +# and disable "remote" tests that access a unreliable external test server over internet +configopts = [ + "-DENABLE_DAP_REMOTE_TESTS=OFF -DBUILD_SHARED_LIBS=OFF", + "-DENABLE_DAP_REMOTE_TESTS=OFF -DBUILD_SHARED_LIBS=ON", +] + +buildopts = 'CFLAGS="-O3 -fPIC"' + +# some tests try to start 16 MPI ranks, so we need to allow oversubscription to avoid failing tests +pretestopts = "OMPI_MCA_rmaps_base_oversubscribe=1 " + +runtest = 'test' + +moduleclass = 'data' diff --git a/s/Szip/Szip-2.1.1-GCCcore-13.3.0.eb b/s/Szip/Szip-2.1.1-GCCcore-13.3.0.eb new file mode 100644 index 00000000..a4bdc38a --- /dev/null +++ b/s/Szip/Szip-2.1.1-GCCcore-13.3.0.eb @@ -0,0 +1,32 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'ConfigureMake' + +name = 'Szip' +version = '2.1.1' + +homepage = 'https://support.hdfgroup.org/doc_resource/SZIP/' + +description = """ + Szip compression software, providing lossless compression of scientific data +""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://support.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['21ee958b4f2d4be2c9cabfa5e1a94877043609ce86fde5f286f105f7ff84d412'] + +builddependencies = [ + ('binutils', '2.42'), +] + +sanity_check_paths = { + 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + + ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/v/VASP/VASP-6.4.3-intel-2023b.eb b/v/VASP/VASP-6.4.3-intel-2023b.eb new file mode 100644 index 00000000..ceb63251 --- /dev/null +++ b/v/VASP/VASP-6.4.3-intel-2023b.eb @@ -0,0 +1,61 @@ +# IT4Innovations 2023 +# L 2024 + +easyblock = 'MakeCp' + +name = 'VASP' +version = '6.4.3' + +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': '2023b'} +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.4.3.tgz': 'fe30e773f2a3e909b5e0baa9654032dfbdeff7ec157bc348cee7681a7b6c24f4'}, + {'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.14.3'), + ('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' diff --git a/w/Wannier90/Wannier90-3.1.0-intel-2024a-serial.eb b/w/Wannier90/Wannier90-3.1.0-intel-2024a-serial.eb new file mode 100644 index 00000000..fbcee142 --- /dev/null +++ b/w/Wannier90/Wannier90-3.1.0-intel-2024a-serial.eb @@ -0,0 +1,39 @@ +# IT4Innovations +# LK 2024 + +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': 'intel', 'version': '2024a'} +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'