Skip to content
18 changes: 18 additions & 0 deletions easybuild/easyconfigs/h/HPCX/HPCX-2.3.0-GCC-8.2.0-2.31.1.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
easyblock = 'Bundle'

name = 'HPCX'
version = '2.3.0'

homepage = 'http://www.mellanox.com/page/products_dyn?product_family=189&mtag=hpc-x'
description = """The Mellanox HPC-X Toolkit
is a comprehensive MPI and SHMEM/PGAS software suite
for high performance computing environments"""

toolchain = {'name': 'GCC', 'version': '8.2.0-2.31.1'}

dependencies = [
('UCX', '1.5.0rc1', '-hpcx'),
('OpenMPI', '4.0.x', '-hpcx')
]

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

name = 'OpenMPI'
version = '4.0.x'
versionsuffix = '-hpcx'

homepage = 'http://www.open-mpi.org/'
description = """Mellanox flavored Open MPI Project is an open source MPI-3 implementation."""

toolchain = {'name': 'GCC', 'version': '8.2.0-2.31.1'}

sources = [{
'filename': 'openmpi-4.0.x.tar.gz',
'git_config': {
'url': 'https://github.com/open-mpi',
'repo_name': 'ompi',
'commit': '03cf3e4',
},
}]
checksums = ['ef53605823b01499e09844a610614a555724603c72a1bb9a5ca59b35389f67ec']
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This checksum is never going to be the same due to how it is created.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why? Is there any way to fix that?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

github produces the tar file on demand by first making a checkout of that commit causing directories to have timestamps that differs every time.
Don't think there is a way to fix that.

@boegel ??

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@boegel could you please advise?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for not coming back to this...

For now, there's no way to reliable checksum tarballs that were created via git_config, see also discussion in easybuilders/easybuild-framework#2727


# needed for --with-verbs
osdependencies = [('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel')]

dependencies = [
('zlib', '1.2.11'),
('UCX', '1.5.0rc1', '-hpcx')
]

preconfigopts = "./autogen.pl && "
configopts = '--with-libevent=internal --enable-mpi1-compatibility '
configopts = '--with-slurm --with-platform=contrib/platform/mellanox/optimized '
configopts += '--with-ucx=$EBROOTUCX '

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': [],
}

moduleclass = 'mpi'
44 changes: 44 additions & 0 deletions easybuild/easyconfigs/u/UCX/UCX-1.5.0rc1-GCCcore-8.2.0-hpcx.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Note:
# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild
easyblock = 'ConfigureMake'

name = 'UCX'
version = '1.5.0rc1'
versionsuffix = '-hpcx'

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': 'GCCcore', 'version': '8.2.0'}
toolchainopts = {'pic': True}

source_urls = ['https://github.com/openucx/ucx/releases/download/v1.5.0-rc1']
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Source_urls should come before sources line

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

sources = ['ucx-1.5.0.tar.gz']
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmmmm, important note here, since you're pulling down 1.5.0-rc1 the source should file not be called ucx-1.5.0.tar.gz.
You need to do it like this or there will be checksum conflicts for people who already have the real 1.5.0 downloaded.

sources = [
    {'filename': 'ucx-1.5.0-rc1.tar.gz', 'download_filename', 'ucx-1.5.0.tar.gz'}
]

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

checksums = ['ae5dfa59c54627a11d8cb1c7fdd0b0319e5e8633a6aebd42a07e54a6a4a32181']

builddependencies = [
('binutils', '2.31.1'),
('pkg-config', '0.29.2'),
]

osdependencies = [('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel')]

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

configopts = '--enable-optimizations --enable-optimizations --disable-logging '
configopts += '--disable-debug --disable-assertions --disable-params-check '
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 = 'mpi'