diff --git a/a/AOMP/AOMP-17.0-1-gcccuda-2022b.eb b/a/AOMP/AOMP-17.0-1-gcccuda-2022b.eb new file mode 100644 index 00000000..0f97202b --- /dev/null +++ b/a/AOMP/AOMP-17.0-1-gcccuda-2022b.eb @@ -0,0 +1,38 @@ +# IT4Innovvations +# LK 2023 + +name = 'AOMP' +version = '17.0-1' + +homepage = 'https://github.com/ROCm-Developer-Tools/aomp' +description = "AMD fork of LLVM, setup for OpenMP offloading to Accelerators" + +toolchain = {'name': 'gcccuda', 'version': '2022b'} + +source_urls = ['https://github.com/ROCm-Developer-Tools/aomp/releases/download/rel_%(version)s/'] +sources = ['aomp-%(version)s.tar.gz'] +#patches = ['AOMP-13.0-2_remove_hardcoded_paths.patch'] +checksums = [ + # aomp-13.0-2.tar.gz: + '5b39f84ee38fcfd27849b55da4d99183e0b7f33eb335e07e5110c9de1cfe5b85', + # AOMP-13.0-2_remove_hardcoded_paths.patch: +# 'ec41ffcec63d079b6a73c93bea29e0b8d77ca7b059725aa1d47c334f7e476ff0', +] + +builddependencies = [ + ('CMake', '3.24.3'), + ('Perl', '5.36.0'), + ('Python', '3.10.8'), + ('elfutils', '0.189'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('binutils', '2.39'), + ('libffi', '3.4.4'), + ('ncurses', '6.3'), + ('numactl', '2.0.16'), + ('libdrm', '2.4.114'), +] + +moduleclass = 'compiler' diff --git a/c/CGAL/CGAL-5.2.4-gompi-2022b.eb b/c/CGAL/CGAL-5.2.4-gompi-2022b.eb new file mode 100644 index 00000000..cc574fdc --- /dev/null +++ b/c/CGAL/CGAL-5.2.4-gompi-2022b.eb @@ -0,0 +1,30 @@ +# IT4Innovations +# LK 2023 + +name = 'CGAL' +version = '5.2.4' + +homepage = 'https://www.cgal.org/' +description = """The goal of the CGAL Open Source Project is to provide easy access to efficient + and reliable geometric algorithms in the form of a C++ library.""" + +toolchain = {'name': 'gompi', 'version': '2022b'} +toolchainopts = {'strict': True} + +source_urls = ['https://github.com/CGAL/cgal/releases/download/v%(version)s/'] +sources = [SOURCE_TAR_XZ] +checksums = ['7f792c59d067e41a073bcee5d615f4276f9ccd2b5e7d359093cc36149fda14c3'] + +builddependencies = [ + ('Eigen', '3.4.0'), + ('Boost', '1.81.0'), + ('CMake', '3.24.3'), + ('GMP', '6.2.1'), + ('MPFR', '4.2.0'), +] + +configopts = "-DCGAL_HEADER_ONLY=OFF " +configopts += "-DWITH_ZLIB=ON -DWITH_MPFR=ON -DWITH_OpenGL=ON -DWITH_Eigen3=ON " +configopts += "-DWITH_GMPXX=ON " + +moduleclass = 'numlib' diff --git a/c/CGAL/CGAL-5.2.4-iimpi-2022b.eb b/c/CGAL/CGAL-5.2.4-iimpi-2022b.eb new file mode 100644 index 00000000..f27e1b37 --- /dev/null +++ b/c/CGAL/CGAL-5.2.4-iimpi-2022b.eb @@ -0,0 +1,30 @@ +# IT4Innovations +# LK 2023 + +name = 'CGAL' +version = '5.2.4' + +homepage = 'https://www.cgal.org/' +description = """The goal of the CGAL Open Source Project is to provide easy access to efficient + and reliable geometric algorithms in the form of a C++ library.""" + +toolchain = {'name': 'iimpi', 'version': '2022b'} +toolchainopts = {'strict': True} + +source_urls = ['https://github.com/CGAL/cgal/releases/download/v%(version)s/'] +sources = [SOURCE_TAR_XZ] +checksums = ['7f792c59d067e41a073bcee5d615f4276f9ccd2b5e7d359093cc36149fda14c3'] + +builddependencies = [ + ('Eigen', '3.4.0'), + ('Boost', '1.79.0'), + ('CMake', '3.24.3'), + ('GMP', '6.2.1'), + ('MPFR', '4.2.0'), +] + +configopts = "-DCGAL_HEADER_ONLY=OFF " +configopts += "-DWITH_ZLIB=ON -DWITH_MPFR=ON -DWITH_Eigen3=ON " +configopts += "-DWITH_GMPXX=ON -DWITH_LAPACK=ON -DWITH_BLAS=ON " + +moduleclass = 'numlib' diff --git a/g/gcccuda/gcccuda-2022b.eb b/g/gcccuda/gcccuda-2022b.eb new file mode 100644 index 00000000..f99c21d8 --- /dev/null +++ b/g/gcccuda/gcccuda-2022b.eb @@ -0,0 +1,22 @@ +# IT4Innovations +# LK 2023 + +easyblock = "Toolchain" + +name = 'gcccuda' +version = '2022b' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain, along with CUDA toolkit.""" + +toolchain = SYSTEM + +local_gcc_version = '12.2.0' + +# compiler toolchain dependencies +dependencies = [ + ('GCC', local_gcc_version), + ('CUDA', '12.0.0', '', True), +] + +moduleclass = 'toolchain' diff --git a/g/glibc/glibc-2.37-GCCcore-12.2.0.eb b/g/glibc/glibc-2.37-GCCcore-12.2.0.eb new file mode 100644 index 00000000..c3c2f23a --- /dev/null +++ b/g/glibc/glibc-2.37-GCCcore-12.2.0.eb @@ -0,0 +1,37 @@ +# IT4Innovations +# LK 2023 + +easyblock = 'ConfigureMake' + +name = 'glibc' +version = '2.37' + +homepage = 'https://www.gnu.org/software/libc/' +description = """The GNU C Library project provides the core libraries for the GNU system and GNU/Linux systems, + as well as many other systems that use Linux as the kernel.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = ['https://ftp.gnu.org/gnu/glibc/'] +sources = ['glibc-%(version)s.tar.xz'] +checksums = ['2257eff111a1815d74f46856daaf40b019c1e553156c69d48ba0cbfc1bb91a43'] + +builddependencies = [ + ('binutils', '2.39'), + ('make', '4.4.1'), + ('texinfo', '7.0.2'), + ('Bison', '3.8.2'), + ('Python', '3.10.8'), +] + +preconfigopts = 'mkdir obj && cd obj && CC="$CC -fuse-ld=bfd -w" ' # --disable-werror" ' +configure_cmd_prefix = '../' +prebuildopts = "cd obj && " +preinstallopts = prebuildopts + +sanity_check_paths = { + 'files': ['bin/ldd', 'lib/libc.a', 'lib/libc.%s' % SHLIB_EXT], + 'dirs': ['etc', 'libexec', 'include', 'sbin', 'share'], +} + +moduleclass = 'lib' diff --git a/h/HDF5/HDF5-1.14.0-iimpi-2022b.eb b/h/HDF5/HDF5-1.14.0-iimpi-2022b.eb new file mode 100644 index 00000000..9fed060f --- /dev/null +++ b/h/HDF5/HDF5-1.14.0-iimpi-2022b.eb @@ -0,0 +1,32 @@ +# IT4Innovations +# LK 2023 + +name = 'HDF5' +version = '1.14.0' + +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': '2022b'} +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 = ['a571cc83efda62e1a51a0a912dd916d01895801c5025af91669484a1575a6ef4'] + +_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.2.12'), + ('Szip', '2.1.1'), +] + +moduleclass = 'data' diff --git a/k/KaHIP/KaHIP-3.14-iimpi-2022b.eb b/k/KaHIP/KaHIP-3.14-iimpi-2022b.eb new file mode 100644 index 00000000..edb1cb96 --- /dev/null +++ b/k/KaHIP/KaHIP-3.14-iimpi-2022b.eb @@ -0,0 +1,31 @@ +# IT4Innovations +# LK 2023 + +easyblock = 'CMakeMake' + +name = 'KaHIP' +version = '3.14' + +homepage = 'https://kahip.github.io/' +description = """The graph partitioning framework KaHIP -- Karlsruhe High Quality Partitioning.""" + +toolchain = {'name': 'iimpi', 'version': '2022b'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/KaHIP/KaHIP/archive/refs/tags'] +sources = ['v%(version)s.tar.gz'] +checksums = ['9da04f3b0ea53b50eae670d6014ff54c0df2cb40f6679b2f6a96840c1217f242'] + +builddependencies = [ + ('binutils', '2.39'), + ('CMake', '3.24.3'), +] + +sanity_check_paths = { + 'files': ["lib/libkahip_static.a", "lib/libkahip.%s" % SHLIB_EXT] + + ["lib/libparhip_interface_static.a", "lib/libparhip_interface.%s" % SHLIB_EXT] + + ["include/%s" % x for x in ["kaHIP_interface.h", "parhip_interface.h"]], + 'dirs': [], +} + +moduleclass = 'math' diff --git a/n/netCDF/netCDF-4.9.0-iimpi-2022b.eb b/n/netCDF/netCDF-4.9.0-iimpi-2022b.eb new file mode 100644 index 00000000..c1f71157 --- /dev/null +++ b/n/netCDF/netCDF-4.9.0-iimpi-2022b.eb @@ -0,0 +1,56 @@ +# IT4Innovations +# LK 2023 + +name = 'netCDF' +version = '4.9.0' + +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': '2022b'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://github.com/Unidata/netcdf-c/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = [ + 'netCDF-%(version)s_fix-lib-name.patch', + 'netCDF-%(version)s_fix-linking-errors.patch', + 'netCDF-%(version)s_skip-nasa-test.patch', +] +checksums = [ + '9f4cb864f3ab54adb75409984c6202323d2fc66c003e5308f3cdf224ed41c0a6', # v4.9.0.tar.gz + 'ed45ae6c49cf8dcddaadef4c5cf403049bf3f761187413d7b03754d319345d6a', # netCDF-4.9.0_fix-lib-name.patch + '2b9579c149579d137eb16ae5d790787774033dcec49c0d4993d9859f224e7b15', # netCDF-4.9.0_fix-linking-errors.patch + '19d99e03c048b037dc01f03f5b8ddc910ebaceb076d0f050540d348f26dfcd2a', # netCDF-4.9.0_skip-nasa-test.patch +] + +builddependencies = [ + ('Autotools', '20220317'), + ('CMake', '3.24.3'), + ('Doxygen', '1.9.5'), +] + +dependencies = [ + ('HDF5', '1.14.0'), + ('cURL', '7.86.0'), + ('Szip', '2.1.1'), + ('zstd', '1.5.2'), + ('bzip2', '1.0.8'), + ('libxml2', '2.10.3'), +] + +# 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", +] + +# 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/o/OpenFOAM/OpenFOAM-v2206-foss-2022a.eb b/o/OpenFOAM/OpenFOAM-v2206-foss-2022a.eb new file mode 100644 index 00000000..e15587e6 --- /dev/null +++ b/o/OpenFOAM/OpenFOAM-v2206-foss-2022a.eb @@ -0,0 +1,46 @@ +name = 'OpenFOAM' +version = 'v2206' + +homepage = 'https://www.openfoam.com/' +description = """OpenFOAM is a free, open source CFD software package. + OpenFOAM has an extensive range of features to solve anything from complex fluid flows + involving chemical reactions, turbulence and heat transfer, + to solid dynamics and electromagnetics.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +# Users have found that vectorizion caused OpenFOAM to produce some very incorrect results. +# Disabling vectorize was confirmed to fix the the known issues. +# With no test suite, sticking to known working toolchain options until proven otherwise. +toolchainopts = {'cstd': 'c++11', 'vectorize': False} + +source_urls = ['https://sourceforge.net/projects/openfoam/files/%(version)s/'] +sources = [SOURCE_TGZ] +patches = [ + ('OpenFOAM-v2206-cleanup.patch', 1), + 'OpenFOAM-v1906-wmake-ompi.patch', +] +checksums = [ + 'db95eda4afb97ca870733b2d4201ef539099d0778e3f3eca9a075d4f1a0eea46', # OpenFOAM-v2206.tgz + '25333124581acae57c173587de4ebd6e143b894b1a26e4f0326db8b7e0cb1972', # OpenFOAM-v2206-cleanup.patch + '518e27683c5c41400cfbc17b31effa50b31b25916dccbf85b18b0b955f642505', # OpenFOAM-v1906-wmake-ompi.patch +] + +builddependencies = [ + ('Bison', '3.8.2'), + ('CMake', '3.23.1'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('libreadline', '8.1.2'), + ('ncurses', '6.3'), + # OpenFOAM requires 64 bit METIS using 32 bit indexes (array indexes) + ('METIS', '5.1.0'), + ('SCOTCH', '7.0.1'), + ('KaHIP', '3.14'), + ('CGAL', '4.14.3'), + ('ParaView', '5.10.1', '-mpi'), + ('gnuplot', '5.4.4'), +] + +moduleclass = 'cae' diff --git a/o/OpenFOAM/OpenFOAM-v2212-cleanup.patch b/o/OpenFOAM/OpenFOAM-v2212-cleanup.patch new file mode 100644 index 00000000..74835bab --- /dev/null +++ b/o/OpenFOAM/OpenFOAM-v2212-cleanup.patch @@ -0,0 +1,150 @@ +# Replaces OpenFOAM third-party libraries with EASYBUILD variants. +# Uses the OpenFOAM prefs mechanism and the FOAM_CONFIG_ETC variable +# to define the preferred settings without patching the original files +# +# Authors: Mark Olesen +# ------------------------------------------------------------------------- +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2012/etc/prefs.sh 2020-12-14 10:02:26.488430802 +0100 +@@ -0,0 +1,7 @@ ++##Easybuild## settings -*- sh -*- ++ ++export FOAM_CONFIG_ETC="etc/easybuild" ++ ++export WM_MPLIB=INTELMPI ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2012/etc/easybuild/config.sh/CGAL 2020-12-14 10:10:55.991841204 +0100 +@@ -0,0 +1,6 @@ ++##Easybuild## settings -*- sh -*- ++ ++export BOOST_ARCH_PATH="$EBROOTBOOST" ++export CGAL_ARCH_PATH="$EBROOTCGAL" ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2012/etc/easybuild/config.sh/FFTW 2020-12-14 10:10:53.735843322 +0100 +@@ -0,0 +1,5 @@ ++##Easybuild## settings -*- sh -*- ++ ++export FFTW_ARCH_PATH="$EBROOTFFTW" ++ ++##EasyBuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2012/etc/easybuild/config.sh/metis 2020-12-11 21:23:28.774934024 +0100 +@@ -0,0 +1,6 @@ ++##Easybuild## settings -*- sh -*- ++ ++METIS_VERSION="metis-$EBVERSIONMETIS" ++[ -d "$METIS_ARCH_PATH" ] || METIS_ARCH_PATH="$METIS_ROOT" ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2012/etc/easybuild/config.sh/readline 2020-12-11 21:23:22.534951043 +0100 +@@ -0,0 +1,5 @@ ++##Easybuild## settings -*- sh -*- ++ ++export READLINE_ARCH_PATH="$EBROOTLIBREADLINE" ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2012/etc/easybuild/config.sh/scotch 2020-12-11 21:23:17.586964539 +0100 +@@ -0,0 +1,7 @@ ++##Easybuild## settings -*- sh -*- ++ ++export SCOTCH_VERSION="scotch_$EBVERSIONSCOTCH" ++export SCOTCH_ARCH_PATH="$EBROOTSCOTCH" ++[ -d "$SCOTCH_ARCH_PATH" ] || SCOTCH_ARCH_PATH="$SCOTCH_ROOT" ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2012/etc/easybuild/config.sh/vtk 2020-12-11 21:22:55.463024882 +0100 +@@ -0,0 +1,9 @@ ++##Easybuild## settings -*- sh -*- ++ ++export VTK_DIR="$EBROOTVTK" ++export MESA_ARCH_PATH="$EBROOTMESA" ++ ++# Define paraview-mesa directory as required ++unset ParaView_MESA_DIR ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2012/etc/easybuild/config.sh/paraview 2020-12-14 10:13:53.583674383 +0100 +@@ -0,0 +1,75 @@ ++##Easybuild## settings -*- sh -*- ++# ++# Largely a knockoff of the OpenFOAM etc/config.sh/paraview-system ++# readjusted for easybuild ++# ++# Copyright (C) 2020 OpenCFD Ltd. ++# ++#------------------------------------------------------------------------------ ++# Compiler-specific location for ThirdParty installations ++archDir="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER" ++ ++# Clean path and library path of previous settings ++eval \ ++ "$($WM_PROJECT_DIR/bin/foamCleanPath -sh-env=PATH \ ++ $ParaView_DIR $archDir/ParaView- $archDir/qt-)" ++ ++eval \ ++ "$($WM_PROJECT_DIR/bin/foamCleanPath -sh-env=LD_LIBRARY_PATH \ ++ $ParaView_DIR $archDir/ParaView- $archDir/qt-)" ++ ++ ++#------------------------------------------------------------------------------ ++ ++##Easybuild## settings ++ ++ParaView_VERSION="$EBVERSIONPARAVIEW" ++export ParaView_DIR="$EBROOTPARAVIEW" ++ ++#------------------------------------------------------------------------------ ++ ++unset PV_PLUGIN_PATH ++ ++# Set API to correspond to VERSION ++# pv_api is . from ParaView_VERSION ++#- ++# Extract API from VERSION ++pv_api=$(echo "$ParaView_VERSION" | \ ++ sed -ne 's/^[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p') ++ ++pv_plugin_dir="$FOAM_LIBBIN/paraview-$pv_api" ++ ++# Set paths if binaries are present ++if [ -r "$ParaView_DIR" ] ++then ++ export PATH="$ParaView_DIR/bin:$PATH" ++ ++ # ParaView libraries ++ # - 5.5 and later: lib/, but could also be lib64/ ++ for libDir in lib64 lib ++ do ++ pvLibDir="$libDir/paraview-$pv_api" ++ if [ -d "$ParaView_DIR/$pvLibDir" ] ++ then ++ export LD_LIBRARY_PATH="$ParaView_DIR/$libDir:$LD_LIBRARY_PATH" ++ break ++ fi ++ done ++ ++ # OpenFOAM plugin directory must be the first in PV_PLUGIN_PATH ++ # and have paraview-major.minor encoded in its name ++ if [ -d "$pv_plugin_dir" ] ++ then ++ export PV_PLUGIN_PATH="$pv_plugin_dir" ++ fi ++fi ++ ++ ++#------------------------------------------------------------------------------ ++ ++unset ParaView_VERSION ++ ++unset archDir libDir ++unset pv_api pv_plugin_dir pvLibDir ++ ++#------------------------------------------------------------------------------ diff --git a/o/OpenFOAM/OpenFOAM-v2212-intel-2022b.eb b/o/OpenFOAM/OpenFOAM-v2212-intel-2022b.eb new file mode 100644 index 00000000..e8b2d32f --- /dev/null +++ b/o/OpenFOAM/OpenFOAM-v2212-intel-2022b.eb @@ -0,0 +1,57 @@ +# IT4Innovations +# LK 2023 + +name = 'OpenFOAM' +version = 'v2212' + +homepage = 'https://www.openfoam.com/' +description = """OpenFOAM is a free, open source CFD software package. + OpenFOAM has an extensive range of features to solve anything from complex fluid flows + involving chemical reactions, turbulence and heat transfer, + to solid dynamics and electromagnetics.""" + +toolchain = {'name': 'intel', 'version': '2022b'} +# Users have found that vectorizion caused OpenFOAM to produce some very incorrect results. +# Disabling vectorize was confirmed to fix the the known issues. +# With no test suite, sticking to known working toolchain options until proven otherwise. +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', 'cstd': 'c++11'} +else: + toolchainopts = {'pic': True, 'usempi': True, 'cstd': 'c++11'} + +source_urls = ['https://sourceforge.net/projects/openfoam/files/%(version)s/'] +sources = [SOURCE_TGZ] +patches = [ + ('OpenFOAM-v2212-cleanup.patch', 1), +] +checksums = [ + {'OpenFOAM-v2212.tgz': '0a3ddbfea9abca04c3a811e72fcbb184c6b1f92c295461e63b231f1a97e96476'}, + {'OpenFOAM-v2212-cleanup.patch': '9a98e5079e2f89178286914b055447d2358615f0c940760f6a7c9979be71ad5d'}, +] + +builddependencies = [ + ('CMake', '3.24.3'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('ncurses', '6.3'), + ('LLVM', '15.0.5'), + ('Qt5', '5.15.7'), + ('Boost', '1.81.0', '', ('GCC', '12.2.0')), + ('imkl-FFTW', '2022.2.1'), + ('numactl', '2.0.16'), + # OpenFOAM requires 64 bit METIS using 32 bit indexes (array indexes) + ('METIS', '5.1.0'), + ('SCOTCH', '7.0.3'), + ('KaHIP', '3.14'), +# ('CGAL', '5.2.4'), +# ('ParaView', '5.11.0', '-mpi'), + ('gnuplot', '5.4.6'), +] + +prebuildopts = 'export LD_PRELOAD="libmpi.so" &&' + +moduleclass = 'cae' diff --git a/o/OpenMPI/OpenMPI-4.1.4-GCC-11.3.0-CUDA-11.7.0.eb b/o/OpenMPI/OpenMPI-4.1.4-GCC-11.3.0-CUDA-11.7.0.eb new file mode 100644 index 00000000..3908b03f --- /dev/null +++ b/o/OpenMPI/OpenMPI-4.1.4-GCC-11.3.0-CUDA-11.7.0.eb @@ -0,0 +1,83 @@ +# IT4Innovations 2022 +# JK + +name = 'OpenMPI' +version = '4.1.4' +versionsuffix = '-CUDA-11.7.0' + +homepage = 'https://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-3 implementation.""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = [ + '92912e175fd1234368c8730c03f4996fe5942e7479bb1d10059405e7f2b3930d', # openmpi-4.1.4.tar.bz2 +] + +builddependencies = [ + ('pkgconf', '1.8.0'), + ('Perl', '5.34.1'), + ('Autotools', '20220317'), +] + +dependencies = [ + ('zlib', '1.2.12'), + ('hwloc', '2.7.1'), + ('libevent', '2.1.12'), + ('UCX', '1.12.1', '-GCCcore-11.3.0', True), + ('UCX-CUDA', '1.12.1', '-GCCcore-11.3.0-CUDA-11.7.0', True), + ('libfabric', '1.15.1'), + ('PMIx', '4.1.2'), + ('UCC', '1.0.0'), + ('CUDA', '11.7.0', '', True), +] + +preconfigopts = './autogen.pl --force && ' + +# IT4I-specific settings + +configopts = '--enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--with-tm=/opt/pbs ' # Enable PBS +configopts += '--enable-mpi-cxx ' # Enable building the C++ MPI bindings +configopts += '--with-ucx=$EBROOTUCX ' +configopts += '--with-cuda=$EBROOTCUDA ' + +osdependencies = [('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel')] + +postinstallcmds = [ + 'echo "# By default, for Open MPI 4.0 and later, infiniband ports on a device are not used by default." >> %(installdir)s/etc/openmpi-mca-params.conf', + 'echo "btl_openib_allow_ib = true" >> %(installdir)s/etc/openmpi-mca-params.conf', +] + +local_libs = ["mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte"] +sanity_check_paths = { + 'files': [ + "bin/%s" % + binfile for binfile in [ + "ompi_info", "opal_wrapper", "orterun"]] + [ + "lib/lib%s.%s" % + (libfile, SHLIB_EXT) for libfile in local_libs] + [ + "include/%s.h" % + x for x in [ + "mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], 'dirs': [], } + +import os +if os.environ.get("CLUSTERNAME") in ["BARBORA"]: + modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx5_0', + 'OMPI_MCA_btl_tcp_if_include': '10.33.4.0/24', + 'OMPI_MCA_orte_base_help_aggregate': '0', + } +elif os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx5_0', + 'OMPI_MCA_orte_base_help_aggregate': '0', + } +else: + modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx4_0', + 'OMPI_MCA_oob_tcp_if_include': '10.0.0.0/8', + } + +moduleclass = 'mpi' diff --git a/p/ParaView/ParaView-5.11.0-intel-2022b-mpi.eb b/p/ParaView/ParaView-5.11.0-intel-2022b-mpi.eb new file mode 100644 index 00000000..301fc40f --- /dev/null +++ b/p/ParaView/ParaView-5.11.0-intel-2022b-mpi.eb @@ -0,0 +1,57 @@ +# IT4Innovations +# LK 2023 + +easyblock = 'CMakeMake' + +name = 'ParaView' +version = '5.11.0' +versionsuffix = '-mpi' + +homepage = 'https://www.paraview.org' +description = "ParaView is a scientific parallel visualizer." + +toolchain = {'name': 'intel', 'version': '2022b'} +toolchainopts = {'pic': True, 'usempi': True} + +local_download_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile=' +source_urls = ['https://www.paraview.org/paraview-downloads/%s' % local_download_suffix] +sources = ["%(name)s-v%(version)s.tar.gz"] +checksums = ['68b1c6d15dd67ec442f964460c56212417e8af2a96763001f8548eb3cbc5ce87'] + +builddependencies = [('CMake', '3.24.3')] + +dependencies = [ + ('Python', '3.10.8'), + ('XZ', '5.2.7'), + ('HDF5', '1.14.0'), + # ('netCDF', '4.9.0'), + ('libGLU', '9.0.2'), + ('X11', '20221110'), + ('Mesa', '22.2.4'), + ('Qt5', '5.15.7'), + ('zlib', '1.2.12'), + ('FFmpeg', '5.1.2'), + ('Szip', '2.1.1'), +] + +# Paraview +configopts = '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON -DPARAVIEW_BUILD_SHARED_LIBS=ON ' +configopts += '-DPARAVIEW_USE_MPI=ON ' +configopts += '-DPARAVIEW_ENABLE_FFMPEG=ON ' +configopts += '-DPARAVIEW_USE_PYTHON=ON ' +configopts += '-DPython3_ROOT_DIR=$EBROOTPYTHON ' + +# OpenGL & Mesa +configopts += '-DOPENGL_glu_LIBRARY=$EBROOTLIBGLU/lib/libGLU.%s ' % SHLIB_EXT +configopts += '-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include ' + +sanity_check_paths = { + 'files': ['bin/paraview', 'bin/pvpython'], + 'dirs': ['include/paraview-%(version_major_minor)s', 'lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ['python -c "import paraview"'] + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +moduleclass = 'vis' diff --git a/p/pkg-config/pkg-config-0.29.2-GCCcore-12.2.0.eb b/p/pkg-config/pkg-config-0.29.2-GCCcore-12.2.0.eb new file mode 100644 index 00000000..818ff7e8 --- /dev/null +++ b/p/pkg-config/pkg-config-0.29.2-GCCcore-12.2.0.eb @@ -0,0 +1,37 @@ +# IT4Innovations +# LK 2023 + +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.29.2' + +homepage = 'https://www.freedesktop.org/wiki/Software/pkg-config/' + +description = """ + pkg-config is a helper tool used when compiling applications and libraries. + It helps you insert the correct compiler options on the command line so an + application can use gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other + libraries). +""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = ['https://pkg-config.freedesktop.org/releases/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591'] + +builddependencies = [('binutils', '2.39')] + +# don't use PAX, it might break. +tar_config_opts = True + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/s/SCOTCH/SCOTCH-7.0.3-gompi-2022b.eb b/s/SCOTCH/SCOTCH-7.0.3-gompi-2022b.eb new file mode 100644 index 00000000..014da0b0 --- /dev/null +++ b/s/SCOTCH/SCOTCH-7.0.3-gompi-2022b.eb @@ -0,0 +1,27 @@ +# IT4Innovations +# LK 2023 + +name = 'SCOTCH' +version = '7.0.3' + +homepage = 'https://www.labri.fr/perso/pelegrin/scotch/' +description = """Software package and libraries for sequential and parallel graph partitioning, +static mapping, and sparse matrix block ordering, and sequential mesh and hypergraph partitioning.""" + +toolchain = {'name': 'gompi', 'version': '2022b'} +toolchainopts = {'pic': True} + +source_urls = ['https://gitlab.inria.fr/scotch/scotch/-/archive/v%(version)s/'] +sources = ['%(namelower)s-v%(version)s.tar.gz'] +checksums = ['5b5351f0ffd6fcae9ae7eafeccaa5a25602845b9ffd1afb104db932dd4d4f3c5'] + +builddependencies = [ + ('Bison', '3.8.2'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('zlib', '1.2.12'), +] + +moduleclass = 'math' diff --git a/s/SCOTCH/SCOTCH-7.0.3-iimpi-2022b.eb b/s/SCOTCH/SCOTCH-7.0.3-iimpi-2022b.eb new file mode 100644 index 00000000..fe6bfc1a --- /dev/null +++ b/s/SCOTCH/SCOTCH-7.0.3-iimpi-2022b.eb @@ -0,0 +1,27 @@ +# IT4Innovations +# LK 2023 + +name = 'SCOTCH' +version = '7.0.3' + +homepage = 'https://www.labri.fr/perso/pelegrin/scotch/' +description = """Software package and libraries for sequential and parallel graph partitioning, +static mapping, and sparse matrix block ordering, and sequential mesh and hypergraph partitioning.""" + +toolchain = {'name': 'iimpi', 'version': '2022b'} +toolchainopts = {'pic': True} + +source_urls = ['https://gitlab.inria.fr/scotch/scotch/-/archive/v%(version)s/'] +sources = ['%(namelower)s-v%(version)s.tar.gz'] +checksums = ['5b5351f0ffd6fcae9ae7eafeccaa5a25602845b9ffd1afb104db932dd4d4f3c5'] + +builddependencies = [ + ('Bison', '3.8.2'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('zlib', '1.2.12'), +] + +moduleclass = 'math' diff --git a/t/texinfo/texinfo-7.0.2-GCCcore-12.2.0.eb b/t/texinfo/texinfo-7.0.2-GCCcore-12.2.0.eb new file mode 100644 index 00000000..120f0cac --- /dev/null +++ b/t/texinfo/texinfo-7.0.2-GCCcore-12.2.0.eb @@ -0,0 +1,40 @@ +# IT4Innovations +# LK 2023 + +easyblock = 'ConfigureMake' + +name = 'texinfo' +version = '7.0.2' + +homepage = 'https://www.gnu.org/software/texinfo/' +description = """Texinfo is the official documentation format of the GNU project.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['f211ec3261383e1a89e4555a93b9d017fe807b9c3992fb2dff4871dae6da54ad'] + +builddependencies = [('binutils', '2.39')] + +osdependencies = ['texlive'] + +preinstallopts = "make TEXMF=%(installdir)s/texmf install-tex && " + +# This will overwrite a users $TEXMFHOME so this module is best used as a build dependency +modextravars = {'TEXMFHOME': '%(installdir)s/texmf'} +modloadmsg = "\n\nWARNING: This texinfo module has (re)defined the value for the environment variable $TEXMFHOME.\n" +modloadmsg += "If you use a custom texmf directory (such as ~/texmf) you should copy files found in the\n" +modloadmsg += "new $TEXMFHOME to your custom directory and reset the value of $TEXMFHOME to point to that space:\n" +modloadmsg += "\tcp -r $TEXMFHOME/* /path/to/your/texmf\n" +modloadmsg += "\texport TEXMFHOME=/path/to/your/texmf\n\n" + +sanity_check_paths = { + 'files': [ + 'texmf/tex/texinfo/texinfo.tex', + 'bin/install-info', 'bin/makeinfo', 'bin/pdftexi2dvi', 'bin/pod2texi', 'bin/texi2pdf' + ], + 'dirs': ['bin', 'share', 'texmf'], +} + +moduleclass = 'devel'