new file: h/hwloc/hwloc-2.0.3-GCC-9.3.0.eb

new file:   n/numactl/numactl-2.0.12-GCC-9.3.0.eb
	new file:   o/OpenMPI/OpenMPI-4.0.4-GCC-9.3.0.eb
	new file:   u/UCX/UCX-1.6.1-GCC-9.3.0.eb
	new file:   u/UCX/UCX-1.8.1-GCC-9.3.0.eb
This commit is contained in:
Lukáš Krupčík 2020-07-30 10:33:39 +02:00
parent 5ab4161ea9
commit 013a82b887
5 changed files with 209 additions and 0 deletions

View File

@ -0,0 +1,29 @@
# IT4Innovations 2020
# LK
easyblock = 'ConfigureMake'
name = 'hwloc'
version = '2.0.3'
homepage = 'http://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 local_computing hardware so as to exploit it accordingly and efficiently."""
toolchain = {'name': 'GCC', 'version': '9.3.0'}
source_urls = [
'http://www.open-mpi.org/software/hwloc/v%(version_major_minor)s/downloads/']
sources = [SOURCE_TAR_GZ]
dependencies = [
('numactl', '2.0.12'),
]
configopts = "--enable-libnuma=$EBROOTNUMACTL"
moduleclass = 'system'

View File

@ -0,0 +1,36 @@
# IT4Innovations 2020
# LK
easyblock = 'ConfigureMake'
name = 'numactl'
version = '2.0.12'
homepage = 'http://oss.sgi.com/projects/libnuma/'
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': 'GCC', 'version': '9.3.0'}
toolchainopts = {'pic': True}
source_urls = ['https://github.com/numactl/numactl/archive/']
sources = ['v%(version)s.tar.gz']
checksums = ['7c3e819c2bdeb883de68bafe88776a01356f7ef565e75ba866c4b49a087c6bdf']
builddependencies = [
('Autotools', '20180311', '', True),
]
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'

View File

@ -0,0 +1,62 @@
# IT4Innovations 2020
# LK
easyblock = 'ConfigureMake'
name = 'OpenMPI'
version = '4.0.4'
homepage = 'http://www.open-mpi.org/'
description = """The Open MPI Project is an open source MPI-2 implementation."""
toolchain = {'name': 'GCC', 'version': '9.3.0'}
source_urls = ['https://github.com/open-mpi/ompi/archive/']
sources = ['v4.0.4.tar.gz']
dependencies = [
('hwloc', '2.0.3'),
('zlib', '1.2.11'),
('UCX', '1.8.1',),
]
preconfigopts = './autogen.pl && '
configopts = '--enable-shared --enable-mpi-thread-multiple --without-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 '
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',
]
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 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',
}
else:
modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx4_0',
'OMPI_MCA_oob_tcp_if_include': '10.0.0.0/8',
}
moduleclass = 'mpi'

View File

@ -0,0 +1,41 @@
# IT4Innovations 2020
# LK
easyblock = 'ConfigureMake'
name = 'UCX'
version = '1.6.1'
homepage = 'http://www.openucx.org/'
description = """Unified Communication X
An open-source production grade communication framework for data centric
and high-performance applications
"""
toolchain = {'name': 'GCC', 'version': '9.3.0'}
toolchainopts = {'pic': True}
source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s']
sources = ['%(namelower)s-%(version)s.tar.gz']
builddependencies = [
('pkg-config', '0.29.2', '', True),
]
osdependencies = [('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel')]
dependencies = [
('numactl', '2.0.12'),
]
configopts = '--enable-optimizations --enable-cma --enable-mt --with-verbs '
configopts += '--without-java --disable-doxygen-doc '
buildopts = 'V=1'
sanity_check_paths = {
'files': ['bin/ucx_info', 'bin/ucx_perftest', 'bin/ucx_read_profile'],
'dirs': ['include', 'lib', 'share']
}
moduleclass = 'lib'

View File

@ -0,0 +1,41 @@
# IT4Innovations 2020
# LK
easyblock = 'ConfigureMake'
name = 'UCX'
version = '1.8.1'
homepage = 'http://www.openucx.org/'
description = """Unified Communication X
An open-source production grade communication framework for data centric
and high-performance applications
"""
toolchain = {'name': 'GCC', 'version': '9.3.0'}
toolchainopts = {'pic': True}
source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s']
sources = ['%(namelower)s-%(version)s.tar.gz']
builddependencies = [
('pkg-config', '0.29.2', '', True),
]
osdependencies = [('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel')]
dependencies = [
('numactl', '2.0.12'),
]
configopts = '--enable-optimizations --enable-cma --enable-mt --with-verbs '
configopts += '--without-java --disable-doxygen-doc '
buildopts = 'V=1'
sanity_check_paths = {
'files': ['bin/ucx_info', 'bin/ucx_perftest', 'bin/ucx_read_profile'],
'dirs': ['include', 'lib', 'share']
}
moduleclass = 'lib'