Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions easybuild/easyconfigs/l/libevent/libevent-2.1.12-GCCcore-11.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
easyblock = 'ConfigureMake'

name = 'libevent'
version = '2.1.12'

homepage = 'https://libevent.org/'

description = """
The libevent API provides a mechanism to execute a callback function when
a specific event occurs on a file descriptor or after a timeout has been
reached. Furthermore, libevent also support callbacks due to signals or
regular timeouts.
"""

toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
toolchainopts = {'pic': True}

source_urls = ['https://github.com/%(name)s/%(name)s/releases/download/release-%(version)s-stable/']
sources = ['%(name)s-%(version)s-stable.tar.gz']
checksums = ['92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb']

builddependencies = [
('binutils', '2.38'),
('pkgconf', '1.8.0'),
]

dependencies = [
('zlib', '1.2.12'),
('OpenSSL', '1.1', '', True),
]

sanity_check_paths = {
'files': ['bin/event_rpcgen.py', 'include/event.h', 'include/event2/event.h',
'lib/libevent_core.%s' % SHLIB_EXT, 'lib/pkgconfig/libevent.pc'],
'dirs': [],
}

moduleclass = 'lib'
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
easyblock = 'ConfigureMake'

name = 'libfabric'
version = '1.15.1'

homepage = 'https://ofiwg.github.io/libfabric/'
description = """
Libfabric is a core component of OFI. It is the library that defines and exports
the user-space API of OFI, and is typically the only software that applications
deal with directly. It works in conjunction with provider libraries, which are
often integrated directly into libfabric.
"""

# The psm3 provider (enabled by default) requires an AVX capable system to run
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
toolchainopts = {'pic': True}

source_urls = ['https://github.com/ofiwg/libfabric/releases/download/v%(version)s']
sources = [SOURCE_TAR_BZ2]
patches = [
'%(name)s-1.12.1_disable-psm3-avx-config.patch',
'%(name)s-1.15.1_disable-OPX-if-unsupported.patch',
]
checksums = [
'cafa3005a9dc86064de179b0af4798ad30b46b2f862fe0268db03d13943e10cd', # libfabric-1.15.1.tar.bz2
# libfabric-1.12.1_disable-psm3-avx-config.patch
'129be05a824b41eeb7bddac3c23aa421a13f7dde622948df942a265ccc96125a',
# libfabric-1.15.1_disable-OPX-if-unsupported.patch
'a1af5b985209acf447760f98f852c0c5359b1731fa23b1b893d8cc816a441850',
]

builddependencies = [
('binutils', '2.38'),
('pkgconf', '1.8.0'),
('Autotools', '20220317'),
]

dependencies = [
('numactl', '2.0.14'),
]

osdependencies = [OS_PKG_IBVERBS_DEV]

# Regenerate build files to pick up psm3-axv-config patch
preconfigopts = "./autogen.sh &&"

# Disable deprecated "sockets" provider
configopts = "--disable-sockets "

# Disable usNIC provider by default as this requires specific osdependencies
# If you want to enable this provider you need to uncomment the following line:
# osdependencies.append(('libnl3-devel', 'libnl3-dev'))
configopts += "--disable-usnic "

buildopts = "V=1"

sanity_check_paths = {
'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] +
['lib/libfabric.%s' % x for x in ['a', SHLIB_EXT]],
'dirs': ['include/rdma', 'lib/pkgconfig', 'share']
}

sanity_check_commands = ['fi_info']

moduleclass = 'lib'
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
Based on https://github.com/ofiwg/libfabric/pull/7583 by mwheinz
Updated for release version 1.15.1 by Jasper Grimm
----------------------------------------------------------------
diff -Nru libfabric-1.15.1.orig/prov/opx/configure.m4 b/prov/opx/configure.m4
--- libfabric-1.15.1.orig/prov/opx/configure.m4 2022-05-16 13:14:58.000000000 +0100
+++ b/prov/opx/configure.m4 2022-05-16 13:25:28.000000000 +0100
@@ -44,7 +44,13 @@
opx_happy=0
opx_direct=0

- AS_IF([test x"$enable_opx" != x"no"],[
+
+ dnl OPX hardware is not supported for MacOS or FreeBSD,
+ dnl and is not supported for non-x86 processors.
+ AS_IF([test "x$macos" = "x1"],[opx_happy=0],
+ [test "x$freebsd" = "x1"],[opx_happy=0],
+ [test x$host_cpu != xx86_64],[opx_happy=0],
+ [test x"$enable_opx" != x"no"],[

AC_MSG_CHECKING([for opx provider])

@@ -91,6 +97,7 @@
AC_SUBST(opx_reliability, [$OPX_RELIABILITY])
AC_DEFINE_UNQUOTED(OPX_RELIABILITY, [$OPX_RELIABILITY], [fabric direct reliability])

+ opx_happy=1
FI_CHECK_PACKAGE([opx_uuid],
[uuid/uuid.h],
[uuid],
@@ -98,14 +105,19 @@
[],
[],
[],
- [opx_happy=1],
+ [],
+ [opx_happy=0])
+ FI_CHECK_PACKAGE([opx_numa],
+ [numa.h],
+ [numa],
+ [numa_node_of_cpu],
+ [],
+ [],
+ [],
+ [],
[opx_happy=0])

- dnl OPX hardware is not available for MacOS or FreeBSD.
- AS_IF([test "x$macos" = "x1"],[opx_happy=0],[])
- AS_IF([test "x$freebsd" = "x1"],[opx_happy=0],[])
-
- AC_CHECK_DECL([HAVE_ATOMICS],
+ AC_CHECK_DECL([HAVE_ATOMICS],
[],
[cc_version=`$CC --version | head -n1`
AC_MSG_WARN(["$cc_version" doesn't support native atomics. Disabling OPX provider.])
48 changes: 48 additions & 0 deletions easybuild/easyconfigs/p/PMIx/PMIx-4.1.2-GCCcore-11.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
easyblock = 'ConfigureMake'

name = 'PMIx'
version = '4.1.2'

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': '11.3.0'}
toolchainopts = {'pic': True}

source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']
sources = ['%(namelower)s-%(version)s.tar.bz2']
checksums = ['670d3a02b39fb2126fe8084174cf03c484e027b5921b5c98a851108134e2597a']

builddependencies = [('binutils', '2.38')]

dependencies = [
('libevent', '2.1.12'),
('zlib', '1.2.12'),
('hwloc', '2.7.1'),
('libfabric', '1.15.1'),
]

configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB'
configopts += ' --with-hwloc=$EBROOTHWLOC'
configopts += ' --with-ofi=$EBROOTLIBFBARIC'
configopts += ' --enable-pmix-binaries'
configopts += ' --disable-man-pages'

buildopts = 'V=1'

sanity_check_paths = {
'files': ['bin/pevent', 'bin/plookup', 'bin/pmix_info', 'bin/pps'],
'dirs': ['etc', 'include', 'lib', 'share']
}

moduleclass = 'lib'