From 65417ffe00bcc61e66702f6e67f60350a0cd8d1e Mon Sep 17 00:00:00 2001 From: Lukas Krupcik Date: Fri, 18 Oct 2024 11:04:27 +0200 Subject: [PATCH] new file: a/Autoconf/Autoconf-2.72-GCCcore-14.2.0.eb new file: a/Autotools/Autotools-20231222-GCCcore-14.2.0.eb new file: b/bzip2/bzip2-1.0.8-GCCcore-14.2.0.eb new file: c/CMake/CMake-3.30.5-GCCcore-14.2.0.eb new file: c/cURL/cURL-8.7.1-GCCcore-14.2.0.eb new file: h/hwloc/hwloc-2.10.0-GCCcore-14.2.0.eb new file: l/libarchive/libarchive-3.7.4-GCCcore-14.2.0.eb new file: n/NVHPC/NVHPC-24.3.eb new file: n/ncurses/ncurses-6.5-GCCcore-14.2.0.eb new file: n/numactl/numactl-2.0.18-GCCcore-13.3.0.eb new file: o/OpenMPI/OpenMPI-4.1.6-NVHPC-24.3.eb new file: o/OpenMPI/OpenMPI-5.0.5-GCC-14.2.0.eb new file: p/Perl/Perl-5.38.2-GCCcore-14.2.0.eb new file: p/pkgconf/pkgconf-2.2.0-GCCcore-14.2.0.eb new file: u/UCC/UCC-1.2.0-GCCcore-13.2.0.eb modified: u/UCX/UCX-1.15.0-GCCcore-13.2.0.eb new file: x/XZ/XZ-5.4.5-GCCcore-14.2.0.eb --- a/Autoconf/Autoconf-2.72-GCCcore-14.2.0.eb | 51 ++++++++ .../Autotools-20231222-GCCcore-14.2.0.eb | 27 +++++ b/bzip2/bzip2-1.0.8-GCCcore-14.2.0.eb | 30 +++++ c/CMake/CMake-3.30.5-GCCcore-14.2.0.eb | 33 ++++++ c/cURL/cURL-8.7.1-GCCcore-14.2.0.eb | 46 ++++++++ h/hwloc/hwloc-2.10.0-GCCcore-14.2.0.eb | 47 ++++++++ .../libarchive-3.7.4-GCCcore-14.2.0.eb | 38 ++++++ n/NVHPC/NVHPC-24.3.eb | 39 +++++++ n/ncurses/ncurses-6.5-GCCcore-14.2.0.eb | 56 +++++++++ n/numactl/numactl-2.0.18-GCCcore-13.3.0.eb | 34 ++++++ o/OpenMPI/OpenMPI-4.1.6-NVHPC-24.3.eb | 109 ++++++++++++++++++ o/OpenMPI/OpenMPI-5.0.5-GCC-14.2.0.eb | 74 ++++++++++++ p/Perl/Perl-5.38.2-GCCcore-14.2.0.eb | 89 ++++++++++++++ p/pkgconf/pkgconf-2.2.0-GCCcore-14.2.0.eb | 34 ++++++ u/UCC/UCC-1.2.0-GCCcore-13.2.0.eb | 49 ++++++++ u/UCX/UCX-1.15.0-GCCcore-13.2.0.eb | 2 +- x/XZ/XZ-5.4.5-GCCcore-14.2.0.eb | 37 ++++++ 17 files changed, 794 insertions(+), 1 deletion(-) create mode 100644 a/Autoconf/Autoconf-2.72-GCCcore-14.2.0.eb create mode 100644 a/Autotools/Autotools-20231222-GCCcore-14.2.0.eb create mode 100644 b/bzip2/bzip2-1.0.8-GCCcore-14.2.0.eb create mode 100644 c/CMake/CMake-3.30.5-GCCcore-14.2.0.eb create mode 100644 c/cURL/cURL-8.7.1-GCCcore-14.2.0.eb create mode 100644 h/hwloc/hwloc-2.10.0-GCCcore-14.2.0.eb create mode 100644 l/libarchive/libarchive-3.7.4-GCCcore-14.2.0.eb create mode 100644 n/NVHPC/NVHPC-24.3.eb create mode 100644 n/ncurses/ncurses-6.5-GCCcore-14.2.0.eb create mode 100644 n/numactl/numactl-2.0.18-GCCcore-13.3.0.eb create mode 100644 o/OpenMPI/OpenMPI-4.1.6-NVHPC-24.3.eb create mode 100644 o/OpenMPI/OpenMPI-5.0.5-GCC-14.2.0.eb create mode 100644 p/Perl/Perl-5.38.2-GCCcore-14.2.0.eb create mode 100644 p/pkgconf/pkgconf-2.2.0-GCCcore-14.2.0.eb create mode 100644 u/UCC/UCC-1.2.0-GCCcore-13.2.0.eb create mode 100644 x/XZ/XZ-5.4.5-GCCcore-14.2.0.eb diff --git a/a/Autoconf/Autoconf-2.72-GCCcore-14.2.0.eb b/a/Autoconf/Autoconf-2.72-GCCcore-14.2.0.eb new file mode 100644 index 00000000..8e14a25b --- /dev/null +++ b/a/Autoconf/Autoconf-2.72-GCCcore-14.2.0.eb @@ -0,0 +1,51 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'ConfigureMake' + +name = 'Autoconf' +version = '2.72' + +homepage = 'https://www.gnu.org/software/autoconf/' + +description = """ + Autoconf is an extensible package of M4 macros that produce shell scripts + to automatically configure software source code packages. These scripts can + adapt the packages to many kinds of UNIX-like systems without manual user + intervention. Autoconf creates a configuration script for a package from a + template file that lists the operating system features that the package can + use, in the form of M4 macro calls. +""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['afb181a76e1ee72832f6581c0eddf8df032b83e2e0239ef79ebedc4467d92d6e'] + +builddependencies = [ + ('binutils', '2.42'), +] + +dependencies = [ + ('M4', '1.4.19'), + # non-standard Perl modules are required, + # see https://github.com/easybuilders/easybuild-easyconfigs/issues/1822 + ('Perl', '5.38.2'), +] + +preconfigopts = "export PERL='/usr/bin/env perl' && " + +sanity_check_paths = { + 'files': ["bin/%s" % x + for x in ["autoconf", "autoheader", "autom4te", "autoreconf", + "autoscan", "autoupdate", "ifnames"]], + 'dirs': [], +} + +sanity_check_commands = [ + "autoconf --help", + "autom4te --help", +] + +moduleclass = 'devel' diff --git a/a/Autotools/Autotools-20231222-GCCcore-14.2.0.eb b/a/Autotools/Autotools-20231222-GCCcore-14.2.0.eb new file mode 100644 index 00000000..8a08ab36 --- /dev/null +++ b/a/Autotools/Autotools-20231222-GCCcore-14.2.0.eb @@ -0,0 +1,27 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'Bundle' + +name = 'Autotools' +version = '20231222' # date of the most recent change + +homepage = 'https://autotools.io' + +description = """ + This bundle collect the standard GNU build tools: Autoconf, Automake + and libtool +""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +dependencies = [ + ('Autoconf', '2.72'), # 20231222 + ('Automake', '1.16.5'), # 20211003 + ('libtool', '2.4.7'), # 20220317 +] + +# Pure bundle -- no need to specify 'binutils' used when building GCCcore +# toolchain as build dependency + +moduleclass = 'devel' diff --git a/b/bzip2/bzip2-1.0.8-GCCcore-14.2.0.eb b/b/bzip2/bzip2-1.0.8-GCCcore-14.2.0.eb new file mode 100644 index 00000000..0ce0e90f --- /dev/null +++ b/b/bzip2/bzip2-1.0.8-GCCcore-14.2.0.eb @@ -0,0 +1,30 @@ +# IT4Innovations +# LK 2024 + +name = 'bzip2' +version = '1.0.8' + +homepage = 'https://sourceware.org/bzip2' +description = """ + bzip2 is a freely available, patent free, high-quality data compressor. It + typically compresses files to within 10% to 15% of the best available + techniques (the PPM family of statistical compressors), whilst being around + twice as fast at compression and six times faster at decompression. +""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://sourceware.org/pub/%(name)s/'] +sources = [SOURCE_TAR_GZ] +patches = ['bzip2-%(version)s-pkgconfig.patch'] +checksums = [ + 'ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269', # bzip2-1.0.8.tar.gz + '9299e8ee4d014ea973777b6ea90661fe329dfa991f822add4c763ea9ddb9aab1', # bzip2-1.0.8-pkgconfig.patch +] + +builddependencies = [ + ('binutils', '2.42'), +] + +moduleclass = 'tools' diff --git a/c/CMake/CMake-3.30.5-GCCcore-14.2.0.eb b/c/CMake/CMake-3.30.5-GCCcore-14.2.0.eb new file mode 100644 index 00000000..b444afe0 --- /dev/null +++ b/c/CMake/CMake-3.30.5-GCCcore-14.2.0.eb @@ -0,0 +1,33 @@ +# IT4Innovatiions +# LK 2024 + +name = 'CMake' +version = '3.30.5' + +homepage = 'https://www.cmake.org' + +description = """ + CMake, the cross-platform, open-source build system. CMake is a family of + tools designed to build, test and package software. +""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +source_urls = ['https://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['9f55e1a40508f2f29b7e065fa08c29f82c402fa0402da839fffe64a25755a86d'] + +builddependencies = [ + ('binutils', '2.42'), +] + +dependencies = [ + ('ncurses', '6.5'), + ('zlib', '1.3.1'), + ('bzip2', '1.0.8'), + ('cURL', '8.7.1'), + ('libarchive', '3.7.4'), +# ('OpenSSL', '3', '', SYSTEM), +] + +moduleclass = 'devel' diff --git a/c/cURL/cURL-8.7.1-GCCcore-14.2.0.eb b/c/cURL/cURL-8.7.1-GCCcore-14.2.0.eb new file mode 100644 index 00000000..96d683c2 --- /dev/null +++ b/c/cURL/cURL-8.7.1-GCCcore-14.2.0.eb @@ -0,0 +1,46 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'ConfigureMake' + +name = 'cURL' +version = '8.7.1' + +homepage = 'https://curl.haxx.se' + +description = """ + libcurl is a free and easy-to-use client-side URL transfer library, + supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, + LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. + libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP + form based upload, proxies, cookies, user+password authentication (Basic, + Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling + and more. +""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +source_urls = ['https://curl.haxx.se/download/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['f91249c87f68ea00cf27c44fdfa5a78423e41e71b7d408e5901a9896d905c495'] + +builddependencies = [ + ('binutils', '2.42'), +] + +dependencies = [ + ('zlib', '1.3.1'), +# ('OpenSSL', '3', '', SYSTEM), +] + +configopts = '--with-zlib ' +configopts += '--with-ssl=$EBROOTOPENSSL ' + +modextravars = {'CURL_INCLUDES': '%(installdir)s/include'} + +sanity_check_paths = { + 'files': ['bin/curl', 'lib/libcurl.a', 'lib/libcurl.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig', 'include/curl'], +} + +moduleclass = 'tools' diff --git a/h/hwloc/hwloc-2.10.0-GCCcore-14.2.0.eb b/h/hwloc/hwloc-2.10.0-GCCcore-14.2.0.eb new file mode 100644 index 00000000..2c464570 --- /dev/null +++ b/h/hwloc/hwloc-2.10.0-GCCcore-14.2.0.eb @@ -0,0 +1,47 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'ConfigureMake' + +name = 'hwloc' +version = '2.10.0' + +homepage = 'https://www.open-mpi.org/projects/hwloc/' + +description = """ + The Portable Hardware Locality (hwloc) software package provides a portable + abstraction (across OS, versions, architectures, ...) of the hierarchical + topology of modern architectures, including NUMA memory nodes, sockets, shared + caches, cores and simultaneous multithreading. It also gathers various system + attributes such as cache and memory information as well as the locality of I/O + devices such as network interfaces, InfiniBand HCAs or GPUs. It primarily + aims at helping applications with gathering information about modern computing + hardware so as to exploit it accordingly and efficiently. +""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +source_urls = ['https://www.open-mpi.org/software/hwloc/v%(version_major_minor)s/downloads/'] +sources = [SOURCE_TAR_GZ] +checksums = ['c7fd8a1404a9719c76aadc642864b9f77aed1dc1fc8882d6af861a9260ba240d'] + +builddependencies = [ + ('binutils', '2.42'), +] + +dependencies = [ + ('numactl', '2.0.18'), + ('libxml2', '2.12.7'), + ('libpciaccess', '0.18.1'), +] + +configopts = "--disable-cairo --disable-opencl --disable-cuda --disable-nvml --disable-gl --disable-libudev " + +sanity_check_paths = { + 'files': ['bin/lstopo', 'include/hwloc/linux.h', + 'lib/libhwloc.%s' % SHLIB_EXT], + 'dirs': ['share/man/man3'], +} +sanity_check_commands = ['lstopo'] + +moduleclass = 'system' diff --git a/l/libarchive/libarchive-3.7.4-GCCcore-14.2.0.eb b/l/libarchive/libarchive-3.7.4-GCCcore-14.2.0.eb new file mode 100644 index 00000000..b51e05ae --- /dev/null +++ b/l/libarchive/libarchive-3.7.4-GCCcore-14.2.0.eb @@ -0,0 +1,38 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'ConfigureMake' + +name = 'libarchive' +version = '3.7.4' + +homepage = 'https://www.libarchive.org/' + +description = """ + Multi-format archive and compression library +""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +source_urls = ['https://www.libarchive.org/downloads/'] +sources = [SOURCE_TAR_GZ] +checksums = [ + {'libarchive-3.7.4.tar.gz': '7875d49596286055b52439ed42f044bd8ad426aa4cc5aabd96bfe7abb971d5e8'}, +] + +builddependencies = [ + ('binutils', '2.42'), +] + +dependencies = [ + ('zlib', '1.3.1'), + ('XZ', '5.4.5'), +# ('OpenSSL', '3', '', SYSTEM), +] + +sanity_check_paths = { + 'files': ['include/archive.h', 'lib/libarchive.%s' % SHLIB_EXT], + 'dirs': ['bin', 'share/man/man3'], +} + +moduleclass = 'tools' diff --git a/n/NVHPC/NVHPC-24.3.eb b/n/NVHPC/NVHPC-24.3.eb new file mode 100644 index 00000000..9074a5cc --- /dev/null +++ b/n/NVHPC/NVHPC-24.3.eb @@ -0,0 +1,39 @@ +# IT4Innovations +# LK 2024 + +name = 'NVHPC' +version = '24.3' + +homepage = 'https://developer.nvidia.com/hpc-sdk/' +description = """C, C++ and Fortran compilers included with the NVIDIA HPC SDK (previously: PGI)""" + +toolchain = SYSTEM + +local_tarball_tmpl = 'nvhpc_2024_%%(version_major)s%%(version_minor)s_Linux_%s_cuda_multi.tar.gz' +# By downloading, you accept the HPC SDK Software License Agreement +# https://docs.nvidia.com/hpc-sdk/eula/index.html +# accept_eula = True +source_urls = ['https://developer.download.nvidia.com/hpc-sdk/%(version)s/'] +sources = [local_tarball_tmpl % '%(arch)s'] +checksums = [ + { + local_tarball_tmpl % 'aarch64': + '6385847de5f8725e5c56d2abf70c90fed5490f2e71a7bd13d3f4ada8720ef036', + local_tarball_tmpl % 'ppc64le': + 'e7330eb35e23dcd9b0b3bedc67c0d5443c4fd76b59caa894a76ecb0d17f71f43', + local_tarball_tmpl % 'x86_64': + '6385847de5f8725e5c56d2abf70c90fed5490f2e71a7bd13d3f4ada8720ef036', + } +] + +local_gccver = '12.2.0' +dependencies = [ + ('GCCcore', local_gccver), + ('binutils', '2.39', '', ('GCCcore', local_gccver)), + # This is necessary to avoid cases where just libnuma.so.1 is present in the system and -lnuma fails + ('numactl', '2.0.16', '', ('GCCcore', local_gccver)), +] + +module_add_cuda = False + +moduleclass = 'compiler' diff --git a/n/ncurses/ncurses-6.5-GCCcore-14.2.0.eb b/n/ncurses/ncurses-6.5-GCCcore-14.2.0.eb new file mode 100644 index 00000000..0346361c --- /dev/null +++ b/n/ncurses/ncurses-6.5-GCCcore-14.2.0.eb @@ -0,0 +1,56 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '6.5' + +homepage = 'https://www.gnu.org/software/ncurses/' +description = """ + The Ncurses (new curses) library is a free software emulation of curses in + System V Release 4.0, and more. It uses Terminfo format, supports pads and + color and multiple highlights and forms characters and function-key mapping, + and has all the other SYSV-curses enhancements over BSD Curses. +""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} +toolchainopts = {'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['136d91bc269a9a5785e5f9e980bc76ab57428f604ce3e5a5a90cebc767971cc6'] + +builddependencies = [ + ('binutils', '2.42'), + ('pkgconf', '2.2.0'), +] + +local_common_configopts = "--with-shared --enable-overwrite --without-ada --enable-symlinks --with-versioned-syms " +local_common_configopts += "--enable-pc-files --with-pkg-config-libdir=%(installdir)s/lib/pkgconfig " +configopts = [ + # build ncurses: serial build in default paths with shared libraries + local_common_configopts + "--disable-widec", + # build ncursesw: serial with UTF-8 + local_common_configopts + "--enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/", +] + +# Symlink libtinfo to libncurses +# libncurses with this configopts has all the symbols from libtinfo, but some packages look for libtinfo specifically +postinstallcmds = ['cd %(installdir)s/lib && for l in libncurses{.,_,w}*; do ln -s "${l}" "${l/ncurses/tinfo}"; done'] + +_target_suffix = ['', 'w'] # '': ncurses, 'w': ncursesw +_lib_suffix = ['%s%s' % (x, y) for x in _target_suffix for y in ['.a', '_g.a', '.' + SHLIB_EXT]] +_lib_names = ['form', 'menu', 'ncurses', 'panel', 'tinfo'] +_pc_names = ['form', 'menu', 'ncurses++', 'ncurses', 'panel'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses%(version_major)s-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s' % (x, y) for x in _lib_names for y in _lib_suffix] + + ['lib/libncurses++%s.a' % x for x in _target_suffix] + + ['lib/pkgconfig/%s%s.pc' % (x, y) for x in _pc_names for y in _target_suffix], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/n/numactl/numactl-2.0.18-GCCcore-13.3.0.eb b/n/numactl/numactl-2.0.18-GCCcore-13.3.0.eb new file mode 100644 index 00000000..119e66af --- /dev/null +++ b/n/numactl/numactl-2.0.18-GCCcore-13.3.0.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'numactl' +version = '2.0.18' + +homepage = 'https://github.com/numactl/numactl' + +description = """ + The numactl program allows you to run your application program on specific + cpu's and memory nodes. It does this by supplying a NUMA memory policy to + the operating system before running your program. The libnuma library provides + convenient ways for you to add NUMA memory policies into your own program. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/numactl/numactl/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['8cd6c13f3096e9c2293c1d732f56e2aa37a7ada1a98deed3fac7bd6da1aaaaf6'] + +builddependencies = [ + ('binutils', '2.42'), + ('Autotools', '20231222'), +] + +preconfigopts = "./autogen.sh && " + +sanity_check_paths = { + 'files': ['bin/numactl', 'bin/numastat', 'lib/libnuma.%s' % SHLIB_EXT, 'lib/libnuma.a'], + 'dirs': ['share/man', 'include'] +} + +moduleclass = 'tools' diff --git a/o/OpenMPI/OpenMPI-4.1.6-NVHPC-24.3.eb b/o/OpenMPI/OpenMPI-4.1.6-NVHPC-24.3.eb new file mode 100644 index 00000000..c9b61208 --- /dev/null +++ b/o/OpenMPI/OpenMPI-4.1.6-NVHPC-24.3.eb @@ -0,0 +1,109 @@ +# IT4Innovations +# LK 2024 + +name = 'OpenMPI' +version = '4.1.6' + +homepage = 'https://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-3 implementation.""" + +toolchain = {'name': 'NVHPC', 'version': '24.3'} + +source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] +sources = [SOURCELOWER_TAR_BZ2] +patches = [ + 'OpenMPI-4.1.1_build-with-internal-cuda-header.patch', + 'OpenMPI-4.1.1_opal-datatype-cuda-performance.patch', +] +checksums = [ + 'f740994485516deb63b5311af122c265179f5328a0d857a567b85db00b11e415', # openmpi-4.1.6.tar.bz2 + # OpenMPI-4.1.1_build-with-internal-cuda-header.patch + '63eac52736bdf7644c480362440a7f1f0ae7c7cae47b7565f5635c41793f8c83', + # OpenMPI-4.1.1_opal-datatype-cuda-performance.patch + 'b767c7166cf0b32906132d58de5439c735193c9fd09ec3c5c11db8d5fa68750e', +] + +builddependencies = [ + ('pkgconf', '1.9.3'), + ('Perl', '5.36.0'), + ('Autotools', '20220317'), +] + +dependencies = [ + ('zlib', '1.2.12'), + ('hwloc', '2.8.0'), + ('libevent', '2.1.12'), + ('UCX', '1.16.0'), + ('libfabric', '1.16.1'), + ('PMIx', '4.2.2'), + ('UCC', '1.3.0'), +] + +# Update configure to include changes from the "internal-cuda" patch +# by running a subset of autogen.pl sufficient to achieve this +# without doing the full, long-running regeneration. +preconfigopts = ' && '.join([ + 'cd config', + 'autom4te --language=m4sh opal_get_version.m4sh -o opal_get_version.sh', + 'cd ..', + 'autoconf', + 'autoheader', + 'aclocal', + 'automake', + '' +]) + +# IT4I-specific settings + +#configopts += '--enable-shared ' +configopts = ' --enable-mpi-thread-multiple' +configopts += ' --with-verbs' +configopts += ' --enable-mpirun-prefix-by-default' +configopts += ' --with-hwloc=$EBROOTHWLOC' # hwloc support +configopts += ' --with-slurm' # Enable slurm +configopts += ' --enable-mpi-cxx' # Enable building the C++ MPI bindings +configopts += ' --with-ucx=$EBROOTUCX' + +import os +if os.environ.get("CLUSTERNAME") in ["BARBORA"]: + configopts += ' --with-knem=/opt/knem-1.1.4.90mlnx1' +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + configopts += ' --with-knem=/opt/knem-1.1.4.90mlnx3' + +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': [], } + +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', + 'SLURM_MPI_TYPE': 'pmix_v4', + } +elif os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx5_0', + 'OMPI_MCA_orte_base_help_aggregate': '0', + 'SLURM_MPI_TYPE': 'pmix_v4', + } +else: + modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx4_0', + 'OMPI_MCA_oob_tcp_if_include': '10.0.0.0/8', + 'SLURM_MPI_TYPE': 'pmix_v4', + } + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-5.0.5-GCC-14.2.0.eb b/o/OpenMPI/OpenMPI-5.0.5-GCC-14.2.0.eb new file mode 100644 index 00000000..ea93be4d --- /dev/null +++ b/o/OpenMPI/OpenMPI-5.0.5-GCC-14.2.0.eb @@ -0,0 +1,74 @@ +# IT4Innovations +# LK 2024 + +name = 'OpenMPI' +version = '5.0.5' + +homepage = 'https://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-3 implementation.""" + +toolchain = {'name': 'GCC', 'version': '14.2.0'} + +source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = [ + {'openmpi-5.0.5.tar.bz2': 'ee46ad8eeee2c3ff70772160bff877cbf38c330a0bc3b3ddc811648b3396698f'}, +] + +builddependencies = [ + ('pkgconf', '2.2.0'), + ('Perl', '5.38.2'), + ('Autotools', '20231222'), +] + +dependencies = [ + ('zlib', '1.2.12'), + ('hwloc', '2.8.0'), + ('libevent', '2.1.12'), + ('UCX', '1.14.1'), + ('libfabric', '1.16.1'), + ('PMIx', '4.2.6'), + ('UCC', '1.1.0'), +] + +# Update configure to include changes from the "internal-cuda" patch +# by running a subset of autogen.pl sufficient to achieve this +# without doing the full, long-running regeneration. +preconfigopts = ' && '.join([ + 'cd config', + 'autom4te --language=m4sh opal_get_version.m4sh -o opal_get_version.sh', + 'cd ..', + 'autoconf', + 'autoheader', + 'aclocal', + 'automake', + '' +]) + +configopts = '--enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--with-slurm ' # Enable slurm +configopts += '--enable-mpi-cxx ' # Enable building the C++ MPI bindings +configopts += '--with-ucx=$EBROOTUCX ' + +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', + 'SLURM_MPI_TYPE': 'pmix_v4', + } +elif os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx5_0', + 'OMPI_MCA_orte_base_help_aggregate': '0', + 'SLURM_MPI_TYPE': 'pmix_v4', + } +else: + modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx4_0', + 'OMPI_MCA_oob_tcp_if_include': '10.0.0.0/8', + 'SLURM_MPI_TYPE': 'pmix_v4', + } + + +moduleclass = 'mpi' diff --git a/p/Perl/Perl-5.38.2-GCCcore-14.2.0.eb b/p/Perl/Perl-5.38.2-GCCcore-14.2.0.eb new file mode 100644 index 00000000..7c796e08 --- /dev/null +++ b/p/Perl/Perl-5.38.2-GCCcore-14.2.0.eb @@ -0,0 +1,89 @@ +# IT4Innovations +# LK 2024 + +name = 'Perl' +version = '5.38.2' + +homepage = 'https://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language + +Includes a small selection of extra CPAN packages for core functionality. +""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.cpan.org/src/%(version_major)s.0'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['a0a31534451eb7b83c7d6594a497543a54d488bc90ca00f5e34762577f40655e'] + +builddependencies = [ + ('binutils', '2.42'), +] + +dependencies = [ + ('zlib', '1.3.1'), +] + +# !! order of extensions is important !! +# extensions updated on 2023-09-03 +# includes all dependencies for Autotools +exts_list = [ + ('threads', '2.21', { + 'source_tmpl': 'threads-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JD/JDHEDDEN'], + 'checksums': ['28394c98a2bcae6f20ffb8a3d965a1c194b764c650169e2050ee38dbaa10f110'], + }), + ('constant', '1.33', { + 'source_tmpl': 'constant-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['79965d4130eb576670e27ca0ae6899ef0060c76da48b02b97682166882f1b504'], + }), + ('Getopt::Long', '2.57', { + 'source_tmpl': 'Getopt-Long-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV'], + 'checksums': ['d3791e6bf167708364ea5ad3be578dc9173a0076167160a4341c05a1e979795e'], + }), + ('File::Path', '2.18', { + 'source_tmpl': 'File-Path-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JK/JKEENAN/'], + 'checksums': ['980f0a17edb353df46e9cd7b357f9f5929cde0f80c45fd7a06cf7e0e8bd6addd'], + }), + ('File::Spec', '3.75', { + 'source_tmpl': 'PathTools-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['a558503aa6b1f8c727c0073339081a77888606aa701ada1ad62dd9d8c3f945a2'], + }), + ('IO::File', '1.55', { + 'source_tmpl': 'IO-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR/'], + 'checksums': ['0443afebb9a48f29611e9b17a017f430b51167a498fa4646c07f8dce03b6b95f'], + }), + ('Thread::Queue', '3.13', { + 'source_tmpl': 'Thread-Queue-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JD/JDHEDDEN'], + 'checksums': ['6ba3dacddd2fbb66822b4aa1d11a0a5273cd04c825cb3ff31c20d7037cbfdce8'], + }), + ('Carp', '1.50', { + 'source_tmpl': 'Carp-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['f5273b4e1a6d51b22996c48cb3a3cbc72fd456c4038f5c20b127e2d4bcbcebd9'], + }), + ('Exporter', '5.78', { + 'source_tmpl': 'Exporter-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['bd17e99219aa2fb6a8acb3d11deffcb588708c70fc29f346e20ea7f71d3a48f0'], + }), + ('Text::ParseWords', '3.31', { + 'source_tmpl': 'Text-ParseWords-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB/'], + 'checksums': ['2ae555ba084d75b2b8feeeb8d1a00911276815ada86bccb1452236964d5a2fc7'], + }), + ('Data::Dumper', '2.183', { + 'source_tmpl': 'Data-Dumper-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NW/NWCLARK/'], + 'checksums': ['e42736890b7dae1b37818d9c5efa1f1fdc52dec04f446a33a4819bf1d4ab5ad3'], + }), +] + +moduleclass = 'lang' diff --git a/p/pkgconf/pkgconf-2.2.0-GCCcore-14.2.0.eb b/p/pkgconf/pkgconf-2.2.0-GCCcore-14.2.0.eb new file mode 100644 index 00000000..c01253b4 --- /dev/null +++ b/p/pkgconf/pkgconf-2.2.0-GCCcore-14.2.0.eb @@ -0,0 +1,34 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'ConfigureMake' + +name = 'pkgconf' +version = '2.2.0' + +homepage = 'https://github.com/pkgconf/pkgconf' + +description = """pkgconf is a program which helps to configure compiler and linker flags for development libraries. + It is similar to pkg-config from freedesktop.org.""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +source_urls = ['https://distfiles.ariadne.space/pkgconf/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['28f8dfc279a10ef66148befa3f6eb266e5f3570316600208ed50e9781c7269d8'] + +builddependencies = [('binutils', '2.42')] + +postinstallcmds = ["cd %(installdir)s/bin && ln -s pkgconf pkg-config"] + +sanity_check_paths = { + 'files': ['bin/pkg-config', 'bin/pkgconf'], + 'dirs': [], +} + +sanity_check_commands = [ + "pkg-config --help", + "pkgconf --help", +] + +moduleclass = 'devel' diff --git a/u/UCC/UCC-1.2.0-GCCcore-13.2.0.eb b/u/UCC/UCC-1.2.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000..ffb0c6a3 --- /dev/null +++ b/u/UCC/UCC-1.2.0-GCCcore-13.2.0.eb @@ -0,0 +1,49 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'ConfigureMake' + +name = 'UCC' +version = '1.2.0' + +homepage = 'https://www.openucx.org/' +description = """UCC (Unified Collective Communication) is a collective +communication operations API and library that is flexible, complete, and +feature-rich for current and emerging programming models and runtimes. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/openucx/ucc/archive/refs/tags'] +sources = ['v%(version)s.tar.gz'] +patches = ['UCC-1.1.0-multiple_component_paths.patch'] +checksums = [ + {'v1.2.0.tar.gz': 'c1552797600835c0cf401b82dc89c4d27d5717f4fb805d41daca8e19f65e509d'}, + {'UCC-1.1.0-multiple_component_paths.patch': '3081d0f694331daa4a88a0fa3fb54b9a918015248ae5eb7b3157b924abd31bee'}, +] + +if ARCH == "riscv64": + patches += ['UCC-1.2.0_add-riscv-support.patch'] + checksums += [{'UCC-1.2.0_add-riscv-support.patch': + 'e9e2a4c206dad2367af97d92c12b796b454992cfce23984b132e9e78a07ff55b'}] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), +] + +dependencies = [ + ('UCX', '1.15.0'), +] + +preconfigopts = "./autogen.sh && " + +sanity_check_paths = { + 'files': ['bin/ucc_info'], + 'dirs': ['include', 'lib'] +} + +#sanity_check_commands = ["ucc_info -c"] + +moduleclass = 'lib' diff --git a/u/UCX/UCX-1.15.0-GCCcore-13.2.0.eb b/u/UCX/UCX-1.15.0-GCCcore-13.2.0.eb index d88c5983..c539a58e 100644 --- a/u/UCX/UCX-1.15.0-GCCcore-13.2.0.eb +++ b/u/UCX/UCX-1.15.0-GCCcore-13.2.0.eb @@ -58,6 +58,6 @@ sanity_check_paths = { 'dirs': ['include', 'lib', 'share'] } -sanity_check_commands = ["ucx_info -d"] +#sanity_check_commands = ["ucx_info -d"] moduleclass = 'lib' diff --git a/x/XZ/XZ-5.4.5-GCCcore-14.2.0.eb b/x/XZ/XZ-5.4.5-GCCcore-14.2.0.eb new file mode 100644 index 00000000..4a85fccc --- /dev/null +++ b/x/XZ/XZ-5.4.5-GCCcore-14.2.0.eb @@ -0,0 +1,37 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.4.5' + +homepage = 'https://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +source_urls = ['https://tukaani.org/xz/'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['8ccf5fff868c006f29522e386fb4c6a1b66463fbca65a4cfc3c4bd596e895e79'] + +builddependencies = [ + # use gettext built with system toolchain as build dep to avoid cyclic dependency (XZ -> gettext -> libxml2 -> XZ) + ('gettext', '0.22.5', '', SYSTEM), + ('binutils', '2.42'), +] + +# may become useful in non-x86 archs +# configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ['bin/lzmainfo', 'bin/unxz', 'bin/xz'], + 'dirs': [] +} + +sanity_check_commands = [ + "xz --help", + "unxz --help", +] + +moduleclass = 'tools'