From b5aaf436fa4b87ea0a5d42d13fffe605d3a625f8 Mon Sep 17 00:00:00 2001 From: Sebastian Achilles Date: Mon, 2 Oct 2023 12:10:43 +0200 Subject: [PATCH 1/4] bump UCX to 1.15.0 and PMIx to 4.2.6 in OpenMPI-4.1.6-GCC-13.2.0.eb --- .../o/OpenMPI/OpenMPI-4.1.6-GCC-13.2.0.eb | 4 +- .../p/PMIx/PMIx-4.2.6-GCCcore-13.2.0.eb | 45 ++++++++++++++++ .../u/UCC/UCC-1.2.0-GCCcore-13.2.0.eb | 2 +- .../u/UCX/UCX-1.15.0-GCCcore-13.2.0.eb | 54 +++++++++++++++++++ 4 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 easybuild/easyconfigs/p/PMIx/PMIx-4.2.6-GCCcore-13.2.0.eb create mode 100644 easybuild/easyconfigs/u/UCX/UCX-1.15.0-GCCcore-13.2.0.eb diff --git a/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.6-GCC-13.2.0.eb b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.6-GCC-13.2.0.eb index 3e6e152e445..3e4baa87735 100644 --- a/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.6-GCC-13.2.0.eb +++ b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.6-GCC-13.2.0.eb @@ -30,9 +30,9 @@ dependencies = [ ('zlib', '1.2.13'), ('hwloc', '2.9.2'), ('libevent', '2.1.12'), - ('UCX', '1.14.1'), + ('UCX', '1.15.0'), ('libfabric', '1.19.0'), - ('PMIx', '4.2.5'), + ('PMIx', '4.2.6'), ('UCC', '1.2.0'), ] diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-4.2.6-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-4.2.6-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..ade4f901574 --- /dev/null +++ b/easybuild/easyconfigs/p/PMIx/PMIx-4.2.6-GCCcore-13.2.0.eb @@ -0,0 +1,45 @@ +easyblock = 'ConfigureMake' + +name = 'PMIx' +version = '4.2.6' + +homepage = 'https://pmix.org/' +description = """Process Management for Exascale Environments +PMI Exascale (PMIx) represents an attempt to +provide an extended version of the PMI standard specifically designed +to support clusters up to and including exascale sizes. The overall +objective of the project is not to branch the existing pseudo-standard +definitions - in fact, PMIx fully supports both of the existing PMI-1 +and PMI-2 APIs - but rather to (a) augment and extend those APIs to +eliminate some current restrictions that impact scalability, and (b) +provide a reference implementation of the PMI-server that demonstrates +the desired level of scalability. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s'] +sources = ['%(namelower)s-%(version)s.tar.bz2'] +checksums = ['10b0d5a7fca70272e9427c677557578ac452cea02aeb00e30dec2116d20c3cd0'] + +builddependencies = [('binutils', '2.40')] + +dependencies = [ + ('libevent', '2.1.12'), + ('zlib', '1.2.13'), + ('hwloc', '2.9.2'), +] + +configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB' +configopts += ' --with-hwloc=$EBROOTHWLOC' +configopts += ' --enable-pmix-binaries' + +buildopts = 'V=1' + +sanity_check_paths = { + 'files': ['bin/pevent', 'bin/plookup', 'bin/pmix_info', 'bin/pps'], + 'dirs': ['etc', 'include', 'lib', 'share'] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/u/UCC/UCC-1.2.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/u/UCC/UCC-1.2.0-GCCcore-13.2.0.eb index 7013dcbf911..45727a0c4bc 100644 --- a/easybuild/easyconfigs/u/UCC/UCC-1.2.0-GCCcore-13.2.0.eb +++ b/easybuild/easyconfigs/u/UCC/UCC-1.2.0-GCCcore-13.2.0.eb @@ -26,7 +26,7 @@ builddependencies = [ ] dependencies = [ - ('UCX', '1.14.1'), + ('UCX', '1.15.0'), ] preconfigopts = "./autogen.sh && " diff --git a/easybuild/easyconfigs/u/UCX/UCX-1.15.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/u/UCX/UCX-1.15.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..6380530f16c --- /dev/null +++ b/easybuild/easyconfigs/u/UCX/UCX-1.15.0-GCCcore-13.2.0.eb @@ -0,0 +1,54 @@ +easyblock = 'ConfigureMake' + +name = 'UCX' +version = '1.15.0' + +homepage = 'https://www.openucx.org/' +description = """Unified Communication X +An open-source production grade communication framework for data centric +and high-performance applications +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s'] +sources = ['%(namelower)s-%(version)s.tar.gz'] +patches = [ + 'UCX-1.13.1-dynamic_modules.patch', +] +checksums = [ + {'ucx-1.15.0.tar.gz': '4b202087076bc1c98f9249144f0c277a8ea88ad4ca6f404f94baa9cb3aebda6d'}, + {'UCX-1.13.1-dynamic_modules.patch': '00874687bd90b795fff61aaa183f6c6bea2210aa1003b28f23d9ebf7066f8782'}, +] + +# Uncomment when updating to final release +# sources = ['%(namelower)s-%(version)s.tar.gz'] +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), + ('pkgconf', '2.0.3'), +] + +osdependencies = [OS_PKG_IBVERBS_DEV] + +dependencies = [ + ('zlib', '1.2.13'), + ('numactl', '2.0.16'), +] + +configure_cmd = "contrib/configure-release" + +configopts = '--enable-optimizations --enable-cma --enable-mt --with-verbs ' +configopts += '--without-java --without-go --disable-doxygen-doc ' + +buildopts = 'V=1' + +sanity_check_paths = { + 'files': ['bin/ucx_info', 'bin/ucx_perftest', 'bin/ucx_read_profile'], + 'dirs': ['include', 'lib', 'share'] +} + +sanity_check_commands = ["ucx_info -d"] + +moduleclass = 'lib' From 1ae75ed5977bd19cd6c5b86fc331a24da7b6d84f Mon Sep 17 00:00:00 2001 From: Sebastian Achilles Date: Mon, 2 Oct 2023 12:16:52 +0200 Subject: [PATCH 2/4] remove easyconfig for PMIx v4.2.5 with GCC/13.2.0 --- .../p/PMIx/PMIx-4.2.5-GCCcore-13.2.0.eb | 45 ------------------- 1 file changed, 45 deletions(-) delete mode 100644 easybuild/easyconfigs/p/PMIx/PMIx-4.2.5-GCCcore-13.2.0.eb diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-4.2.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-4.2.5-GCCcore-13.2.0.eb deleted file mode 100644 index 20d7c7553c3..00000000000 --- a/easybuild/easyconfigs/p/PMIx/PMIx-4.2.5-GCCcore-13.2.0.eb +++ /dev/null @@ -1,45 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'PMIx' -version = '4.2.5' - -homepage = 'https://pmix.org/' -description = """Process Management for Exascale Environments -PMI Exascale (PMIx) represents an attempt to -provide an extended version of the PMI standard specifically designed -to support clusters up to and including exascale sizes. The overall -objective of the project is not to branch the existing pseudo-standard -definitions - in fact, PMIx fully supports both of the existing PMI-1 -and PMI-2 APIs - but rather to (a) augment and extend those APIs to -eliminate some current restrictions that impact scalability, and (b) -provide a reference implementation of the PMI-server that demonstrates -the desired level of scalability. -""" - -toolchain = {'name': 'GCCcore', 'version': '13.2.0'} -toolchainopts = {'pic': True} - -source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s'] -sources = ['%(namelower)s-%(version)s.tar.bz2'] -checksums = ['a89c2c5dc69715a4df1e76fdc4318299386c184623a1d0d5eb1fb062e14b0d2b'] - -builddependencies = [('binutils', '2.40')] - -dependencies = [ - ('libevent', '2.1.12'), - ('zlib', '1.2.13'), - ('hwloc', '2.9.2'), -] - -configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB' -configopts += ' --with-hwloc=$EBROOTHWLOC' -configopts += ' --enable-pmix-binaries' - -buildopts = 'V=1' - -sanity_check_paths = { - 'files': ['bin/pevent', 'bin/plookup', 'bin/pmix_info', 'bin/pps'], - 'dirs': ['etc', 'include', 'lib', 'share'] -} - -moduleclass = 'lib' From f7b1379f1bbe24a78b6fa4822b364d978a8b3913 Mon Sep 17 00:00:00 2001 From: Sebastian Achilles Date: Mon, 2 Oct 2023 12:19:40 +0200 Subject: [PATCH 3/4] remove easyconfig for UCX v1.14.1 with GCC/13.2.0 --- .../u/UCX/UCX-1.14.1-GCCcore-13.2.0.eb | 57 ------------------- ..._fix-type-conflict-uct_md_mem_advise.patch | 31 ---------- 2 files changed, 88 deletions(-) delete mode 100644 easybuild/easyconfigs/u/UCX/UCX-1.14.1-GCCcore-13.2.0.eb delete mode 100644 easybuild/easyconfigs/u/UCX/UCX-1.14.1_fix-type-conflict-uct_md_mem_advise.patch diff --git a/easybuild/easyconfigs/u/UCX/UCX-1.14.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/u/UCX/UCX-1.14.1-GCCcore-13.2.0.eb deleted file mode 100644 index 253b43fceca..00000000000 --- a/easybuild/easyconfigs/u/UCX/UCX-1.14.1-GCCcore-13.2.0.eb +++ /dev/null @@ -1,57 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'UCX' -version = '1.14.1' - -homepage = 'https://www.openucx.org/' -description = """Unified Communication X -An open-source production grade communication framework for data centric -and high-performance applications -""" - -toolchain = {'name': 'GCCcore', 'version': '13.2.0'} -toolchainopts = {'pic': True} - -source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s'] -sources = ['%(namelower)s-%(version)s.tar.gz'] -patches = [ - 'UCX-1.13.1-dynamic_modules.patch', - 'UCX-1.14.1_fix-type-conflict-uct_md_mem_advise.patch', -] -checksums = [ - {'ucx-1.14.1.tar.gz': 'baa0634cafb269a3112f626eb226bcd2ca8c9fcf0fec3b8e2a3553baad5f77aa'}, - {'UCX-1.13.1-dynamic_modules.patch': '00874687bd90b795fff61aaa183f6c6bea2210aa1003b28f23d9ebf7066f8782'}, - {'UCX-1.14.1_fix-type-conflict-uct_md_mem_advise.patch': - '9fbf26b39cd5c9e469ff152e18d79a4bf685fca175d4088b9bbe8644b74c1401'}, -] - -# Uncomment when updating to final release -# sources = ['%(namelower)s-%(version)s.tar.gz'] -builddependencies = [ - ('binutils', '2.40'), - ('Autotools', '20220317'), - ('pkgconf', '2.0.3'), -] - -osdependencies = [OS_PKG_IBVERBS_DEV] - -dependencies = [ - ('zlib', '1.2.13'), - ('numactl', '2.0.16'), -] - -configure_cmd = "contrib/configure-release" - -configopts = '--enable-optimizations --enable-cma --enable-mt --with-verbs ' -configopts += '--without-java --without-go --disable-doxygen-doc ' - -buildopts = 'V=1' - -sanity_check_paths = { - 'files': ['bin/ucx_info', 'bin/ucx_perftest', 'bin/ucx_read_profile'], - 'dirs': ['include', 'lib', 'share'] -} - -sanity_check_commands = ["ucx_info -d"] - -moduleclass = 'lib' diff --git a/easybuild/easyconfigs/u/UCX/UCX-1.14.1_fix-type-conflict-uct_md_mem_advise.patch b/easybuild/easyconfigs/u/UCX/UCX-1.14.1_fix-type-conflict-uct_md_mem_advise.patch deleted file mode 100644 index 492bacf17b3..00000000000 --- a/easybuild/easyconfigs/u/UCX/UCX-1.14.1_fix-type-conflict-uct_md_mem_advise.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 8d6032ec864190c9f079d96e731c5004a975e153 Mon Sep 17 00:00:00 2001 -From: Jan Ciesko -Date: Thu, 5 Jan 2023 12:31:39 -0800 -Subject: [PATCH] UCT/BASE: Fix conflicting types for 'uct_md_mem_advise'. - -Signed-off-by: Howard Pritchard ---- - src/uct/base/uct_md.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/uct/base/uct_md.c b/src/uct/base/uct_md.c -index d7f4c326c0b..3830e16618b 100644 ---- a/src/uct/base/uct_md.c -+++ b/src/uct/base/uct_md.c -@@ -2,6 +2,7 @@ - * Copyright (c) NVIDIA CORPORATION & AFFILIATES, 2001-2014. ALL RIGHTS RESERVED. - * Copyright (C) UT-Battelle, LLC. 2015. ALL RIGHTS RESERVED. - * Copyright (C) ARM Ltd. 2016-2017. ALL RIGHTS RESERVED. -+* Copyright (c) Triad National Security, LLC. 2023. ALL RIGHTS RESERVED. - * - * See file LICENSE for terms. - */ -@@ -554,7 +555,7 @@ ucs_status_t uct_md_mem_free(uct_md_h md, uct_mem_h memh) - - ucs_status_t - uct_md_mem_advise(uct_md_h md, uct_mem_h memh, void *addr, size_t length, -- unsigned advice) -+ uct_mem_advice_t advice) - { - if ((length == 0) || (addr == NULL)) { - return UCS_ERR_INVALID_PARAM; From f9ab7c1e90077c4aa6d0f90e3c030ecc516fbf45 Mon Sep 17 00:00:00 2001 From: Sebastian Achilles Date: Mon, 2 Oct 2023 12:43:55 +0200 Subject: [PATCH 4/4] bump UCX to 1.15.0 in impi-2021.10.0-intel-compilers-2023.2.1.eb --- .../i/impi/impi-2021.10.0-intel-compilers-2023.2.1.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/i/impi/impi-2021.10.0-intel-compilers-2023.2.1.eb b/easybuild/easyconfigs/i/impi/impi-2021.10.0-intel-compilers-2023.2.1.eb index e1064214201..4a92f37d8fe 100644 --- a/easybuild/easyconfigs/i/impi/impi-2021.10.0-intel-compilers-2023.2.1.eb +++ b/easybuild/easyconfigs/i/impi/impi-2021.10.0-intel-compilers-2023.2.1.eb @@ -11,6 +11,6 @@ source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/4f58 sources = ['l_mpi_oneapi_p_%(version)s.49374_offline.sh'] checksums = ['ab2e97d87b139201a2e7dab9a61ac6e8927b7783b459358c4ad69a1b1c064f40'] -dependencies = [('UCX', '1.14.1')] +dependencies = [('UCX', '1.15.0')] moduleclass = 'mpi'