This commit is contained in:
easybuild 2024-07-25 11:57:13 +02:00
parent 65193dff9c
commit 3615ccafe1
21 changed files with 954 additions and 14 deletions

View File

@ -0,0 +1,45 @@
# IT4Innovations
# LK 2023
easyblock = 'ConfigureMake'
name = 'BLIS'
version = '0.9.0'
homepage = 'https://github.com/flame/blis/'
description = """BLIS is a portable software framework for instantiating high-performance
BLAS-like dense linear algebra libraries."""
toolchain = {'name': 'GCC', 'version': '12.2.0'}
source_urls = ['https://github.com/flame/blis/archive/']
sources = ['%(version)s.tar.gz']
patches = [
# '%(name)s-%(version)s_disable_power9_kernels.patch',
'%(name)s-%(version)s_enable_ppc_autodetect.patch',
]
checksums = [
'1135f664be7355427b91025075562805cdc6cc730d3173f83533b2c5dcc2f308', # 0.9.0.tar.gz
# BLIS-0.9.0_disable_power9_kernels.patch
# 'ed7a326bc5c5c21c42faefbec2fd7be609d1c7236981b466475edace39307279',
# BLIS-0.9.0_enable_ppc_autodetect.patch
'f373fb252c0d14036fb631f048091976cceb02abb3e570a97fbaeac2fbb12328',
]
builddependencies = [
('Python', '3.10.8', '-bare'),
('Perl', '5.36.0'),
]
configopts = '--enable-cblas --enable-threading=openmp --enable-shared CC="$CC" auto'
runtest = 'check'
sanity_check_paths = {
'files': ['include/blis/cblas.h', 'include/blis/blis.h',
'lib/libblis.a', 'lib/libblis.%s' % SHLIB_EXT],
'dirs': [],
}
modextrapaths = {'CPATH': 'include/blis'}
moduleclass = 'numlib'

View File

@ -0,0 +1,61 @@
# IT4Innovations
# LK 2023
easyblock = 'Bundle'
name = 'FlexiBLAS'
version = '3.2.1'
homepage = 'https://gitlab.mpi-magdeburg.mpg.de/software/flexiblas-release'
description = """FlexiBLAS is a wrapper library that enables the exchange of the BLAS and LAPACK implementation
used by a program without recompiling or relinking it."""
toolchain = {'name': 'GCC', 'version': '12.2.0'}
local_extra_flags = "-fstack-protector-strong -fstack-clash-protection"
toolchainopts = {'pic': True, 'extra_cflags': local_extra_flags, 'extra_fflags': local_extra_flags}
builddependencies = [
('CMake', '3.24.3'),
('Python', '3.10.8', '-bare'), # required for running the tests
('BLIS', '0.9.0'),
]
dependencies = [
('OpenBLAS', '0.3.21'),
]
# note: first listed backend will be used as default by FlexiBLAS,
# unless otherwise specified via easyconfig parameter flexiblas_default
local_backends = ['OpenBLAS', 'BLIS']
# imkl supplies its backend via the imkl module, not as a dependency
if ARCH == 'x86_64':
local_backends.append('imkl')
default_component_specs = {'start_dir': '%(namelower)s-%(version)s'}
sanity_check_all_components = True
# Also build and install LAPACKE, which FlexiBLAS does not support yet
components = [
(name, version, {
'source_urls': ['https://github.com/mpimd-csc/flexiblas/releases/download/v%(version)s/'],
'sources': [SOURCELOWER_TAR_GZ],
'checksums': ['5be7e508e2dbb751b3bf372639d8e82a11f79e9ef6cbf243b64981c24a5703cf'],
'backends': local_backends,
}),
('LAPACK', '3.10.1', {
'easyblock': 'CMakeMake',
'source_urls': ['https://github.com/Reference-LAPACK/lapack/archive/'],
'sources': ['v%(version)s.tar.gz'],
'checksums': ['cd005cd021f144d7d5f7f33c943942db9f03a28d110d6a3b80d718a295f7f714'],
'configopts': ('-DBUILD_SHARED_LIBS=ON -DUSE_OPTIMIZED_BLAS=ON -DLAPACKE=ON '
'-DUSE_OPTIMIZED_LAPACK=ON -DBUILD_DEPRECATED=ON '
'-DCMAKE_INSTALL_INCLUDEDIR=%(installdir)s/include/flexiblas'),
'sanity_check_paths': {
'files': ['lib/liblapacke.%s' % SHLIB_EXT, 'include/flexiblas/lapacke.h'],
'dirs': [],
},
}),
]
moduleclass = 'lib'

View File

@ -0,0 +1,41 @@
# IT4Innovations
# LK 2024
easyblock = 'ConfigureMake'
name = 'gettext'
version = '0.21.1'
homepage = 'https://www.gnu.org/software/gettext/'
description = """GNU 'gettext' is an important step for the GNU Translation Project, as it is an asset on which we may
build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools
and documentation"""
# This is a basic stripped down version of gettext without any
# dependencies on other packages used as initial builddep for XZ
# It is the first step in the cyclic dependency chain of
# XZ -> libxml2 -> gettext -> XZ
toolchain = SYSTEM
source_urls = [GNU_SOURCE]
sources = [SOURCE_TAR_GZ]
checksums = ['e8c3650e1d8cee875c4f355642382c1df83058bd5a11ee8555c0cf276d646d45']
dependencies = [
('ncurses', '6.3'),
]
configopts = '--without-emacs --with-included-libxml --without-xz --without-bzip2'
sanity_check_paths = {
'files': ['bin/gettext', 'lib/libgettextpo.a', 'lib/libgettextpo.%s' % SHLIB_EXT],
'dirs': ['include'],
}
sanity_check_commands = [
"gettext --help",
"msginit --help",
]
moduleclass = 'tools'

View File

@ -0,0 +1,27 @@
# IT4Innovations
# LK 2023
name = 'HDF5'
version = '1.14.0'
homepage = 'https://portal.hdfgroup.org/display/support'
description = """HDF5 is a data model, library, and file format for storing and managing data.
It supports an unlimited variety of datatypes, and is designed for flexible
and efficient I/O and for high volume and complex data."""
toolchain = {'name': 'NVHPC', 'version': '23.5'}
toolchainopts = {'pic': True}
source_urls = ['https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version_major_minor)s/hdf5-%(version)s/src']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['a571cc83efda62e1a51a0a912dd916d01895801c5025af91669484a1575a6ef4']
configopts = '--enable-fortran --enable-fortran 2003 --enable-cxx --enable-parallel --enable-unsupported --enable-shared'
dependencies = [
('OpenMPI', '4.1.5', '-CUDA-12.2.0'),
('zlib', '1.2.12'),
('Szip', '2.1.1'),
]
moduleclass = 'data'

34
j/JUBE/JUBE-2.6.1.eb Normal file
View File

@ -0,0 +1,34 @@
easyblock = "VersionIndependentPythonPackage"
name = "JUBE"
version = "2.6.1"
homepage = "https://www.fz-juelich.de/jsc/jube"
description = """The JUBE benchmarking environment provides a script based
framework to easily create benchmark sets, run those sets on different
computer systems and evaluate the results.
"""
toolchain = SYSTEM
source_urls = ['https://apps.fz-juelich.de/jsc/jube/jube2/download.php?file=']
sources = [SOURCE_TAR_GZ]
checksums = ['348ebeb4db0ea56889a5d13bf49e394fccc0992f620e8c0c61c40185db13ad64']
options = {'modulename': 'jube2'}
sanity_check_paths = {
'files': ['bin/jube'],
'dirs': [],
}
sanity_check_commands = ['jube --version']
modextrapaths = {
'JUBE_INCLUDE_PATH': 'share/jube/platform/slurm'
}
modluafooter = 'execute {cmd=\'eval "$(jube complete)"\',modeA={"load"}}'
moduleclass = 'tools'

View File

@ -0,0 +1,37 @@
easyblock = 'ConfigureMake'
name = 'memkind'
version = '1.14.0'
homepage = 'http://memkind.github.io'
description = """User Extensible Heap Manager built on top of jemalloc which enables control of memory characteristics
and a partitioning of the heap between kinds of memory.
"""
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
toolchainopts = {'pic': True}
source_urls = ['https://github.com/memkind/memkind/archive/']
sources = ['v%(version)s.tar.gz']
checksums = ['ab366b20b5a87ea655483631fc762ba6eb59eb6c3a08652e643f1ee3f06a6a12']
builddependencies = [
('binutils', '2.38'),
# ('Coreutils', '8.27'), # needed to ensure that ./build_jemalloc.sh works properly
('Autotools', '20220317'), # needed to ensure that ./build_jemalloc.sh works properly
]
dependencies = [
# ('tbb', '2017_U5'), # optional, to enable the tbb heap manager
('numactl', '2.0.14')
]
# preconfigopts = './build_jemalloc.sh && ./autogen.sh && '
preconfigopts = './autogen.sh && '
sanity_check_paths = {
'files': ["include/memkind.h", "lib/libmemkind.%s" % SHLIB_EXT],
'dirs': [],
}
moduleclass = 'lib'

View File

@ -21,10 +21,6 @@ dependencies = [
# ('UCX-CUDA', '1.14.1', versionsuffix, ('GCCcore', '12.2.0')),
]
import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
cuda_compute_capabilities = ['8.0'] # A100
else:
cuda_compute_capabilities = ['7.0'] # V100
cuda_compute_capabilities = ['8.0'] # A100
moduleclass = 'lib'

View File

@ -14,7 +14,10 @@ accept_eula = True
source_urls = ['https://developer.download.nvidia.com/hpc-sdk/%(version)s/']
local_tarball_tmpl = 'nvhpc_2023_%%(version_major)s%%(version_minor)s_Linux_%s_cuda_multi.tar.gz'
sources = [local_tarball_tmpl % '%(arch)s']
checksums = ['33483a069a911f9309cd53859ab90d2778fb176df906e9e8d2bd55f45eeec400']
checksums = [
# 'cf744498d1d74ba0af4294388706644ad3669eb0cacea3b69e23739afa2806a0',
'33483a069a911f9309cd53859ab90d2778fb176df906e9e8d2bd55f45eeec400'
]
local_gccver = '12.2.0'
dependencies = [
@ -24,11 +27,6 @@ dependencies = [
]
default_cuda_version = '12.2'
import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
cuda_compute_capabilities = "8.0"
else:
cuda_compute_capabilities = "7.0"
cuda_compute_capabilities = "8.0"
moduleclass = 'compiler'

50
n/ncurses/ncurses-6.3.eb Normal file
View File

@ -0,0 +1,50 @@
# IT4Innovations
# LK 2024
easyblock = 'ConfigureMake'
name = 'ncurses'
version = '6.3'
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 = SYSTEM
source_urls = [GNU_SOURCE]
sources = [SOURCE_TAR_GZ]
checksums = ['97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059']
local_common_configopts = "--with-shared --enable-overwrite --without-ada --enable-symlinks --with-versioned-syms "
configopts = [
# build ncurses: serial build in default paths with shared libraries
local_common_configopts,
# build ncursesw: serial with UTF-8
local_common_configopts + "--enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/",
]
# need to take care of $CFLAGS ourselves with dummy toolchain
# we need to add -fPIC, but should also include -O* option to avoid compiling with -O0 (default for GCC)
buildopts = 'CFLAGS="-O2 -fPIC"'
# 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']
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],
'dirs': ['include', 'include/ncursesw'],
}
moduleclass = 'devel'

View File

@ -0,0 +1,95 @@
# IT4Innovations
# LK 2023
name = 'OpenMPI'
version = '4.1.5'
versionsuffix = '-CUDA-12.2.0'
homepage = 'https://www.open-mpi.org/'
description = """The Open MPI Project is an open source MPI-3 implementation."""
toolchain = {'name': 'NVHPC', 'version': '23.5'}
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 = [
'a640986bc257389dd379886fdae6264c8cfa56bc98b71ce3ae3dfbd8ce61dbe3', # openmpi-4.1.5.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'),
('CUDA', '12.2.0', '', True),
('hwloc', '2.8.0'),
('libevent', '2.1.12'),
('UCX', '1.14.1'),
('UCX-CUDA', '1.14.1', '-CUDA-%(cudaver)s'),
('libfabric', '1.16.1'),
('PMIx', '4.2.2'),
('UCC', '1.1.0'),
('UCC-CUDA', '1.1.0', '-CUDA-%(cudaver)s'),
]
# 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',
''
])
# CUDA related patches and custom configure option can be removed if CUDA support isn't wanted.
configopts = ' --with-cuda=internal'
configopts += ' CC=pgcc CXX=pgc++ FC=pgfortran'
configopts += ' CXXFLAGS="-fPIC"'
# 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'
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': [], }
moduleclass = 'mpi'

View File

@ -0,0 +1,96 @@
# IT4Innovations
# LK 2024
name = 'OpenMPI'
version = '4.1.6'
versionsuffix = '-CUDA-12.2.0'
homepage = 'https://www.open-mpi.org/'
description = """The Open MPI Project is an open source MPI-3 implementation."""
toolchain = {'name': 'NVHPC', 'version': '23.11'}
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'),
('CUDA', '12.2.0', '', True),
('hwloc', '2.8.0'),
('libevent', '2.1.12'),
('UCX', '1.14.1'),
('UCX-CUDA', '1.14.1', '-CUDA-%(cudaver)s'),
('libfabric', '1.16.1'),
('PMIx', '4.2.2'),
('UCC', '1.1.0'),
('UCC-CUDA', '1.1.0', '-CUDA-%(cudaver)s'),
]
# 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',
''
])
# CUDA related patches and custom configure option can be removed if CUDA support isn't wanted.
configopts = ' --with-cuda=internal'
configopts += ' CC=pgcc CXX=pgc++ FC=pgfortran'
configopts += ' CXXFLAGS="-fPIC"'
# 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'
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': [], }
moduleclass = 'mpi'

View File

@ -0,0 +1,84 @@
# IT4Innovations
# LK 2024
name = 'OpenMPI'
version = '4.1.6'
versionsuffix = '-rocm'
homepage = 'https://www.open-mpi.org/'
description = """The Open MPI Project is an open source MPI-3 implementation."""
toolchain = {'name': 'NVHPC', 'version': '23.11'}
source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads']
sources = [SOURCELOWER_TAR_BZ2]
checksums = [
'f740994485516deb63b5311af122c265179f5328a0d857a567b85db00b11e415', # openmpi-4.1.6.tar.bz2
]
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.15.0', '-rocm'),
('libfabric', '1.16.1'),
('PMIx', '4.2.2'),
('UCX-ROCM', '1.15.0', '-rocm'),
]
# 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 = ' -with-rocm=/opt/rocm '
configopts += ' CC=pgcc CXX=pgc++ FC=pgfortran'
configopts += ' CXXFLAGS="-fPIC"'
# 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'
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': [], }
moduleclass = 'mpi'

View File

@ -0,0 +1,68 @@
# IT4Innovations
# LK 2024
name = 'OpenMPI'
version = '5.0.2'
versionsuffix = '-rocm'
homepage = 'https://www.open-mpi.org/'
description = """The Open MPI Project is an open source MPI-3 implementation."""
toolchain = {'name': 'GCC', 'version': '12.2.0'}
source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads']
sources = [SOURCELOWER_TAR_BZ2]
checksums = [
'ee46ad8eeee2c3ff70772160bff877cbf38c330a0bc3b3ddc811648b3396698f',
]
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.15.0', '-rocm'),
('libfabric', '1.16.1'),
('PMIx', '4.2.6'),
('UCX-ROCM', '1.15.0', '-rocm'),
]
configopts = ' -with-rocm=/opt/rocm '
configopts += ' CXXFLAGS="-fPIC"'
# 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 += ' --with-ucx=$EBROOTUCX'
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': [], }
moduleclass = 'mpi'

View File

@ -0,0 +1,74 @@
# IT4Innovations
# LK 2024
name = 'OpenMPI'
version = '4.1.5'
homepage = 'https://www.open-mpi.org/'
description = """The Open MPI Project is an open source MPI-3 implementation."""
toolchain = {'name': 'GCC', 'version': '12.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.2.tar.bz2': 'ee46ad8eeee2c3ff70772160bff877cbf38c330a0bc3b3ddc811648b3396698f'},
]
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.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'

View File

@ -0,0 +1,69 @@
# IT4Innovations
# LK 2024
name = 'OpenMPI'
version = '5.0.2'
versionsuffix = '-rocm'
homepage = 'https://www.open-mpi.org/'
description = """The Open MPI Project is an open source MPI-3 implementation."""
toolchain = {'name': 'NVHPC', 'version': '23.11'}
source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads']
sources = [SOURCELOWER_TAR_BZ2]
checksums = [
'ee46ad8eeee2c3ff70772160bff877cbf38c330a0bc3b3ddc811648b3396698f',
]
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.15.0', '-rocm'),
('libfabric', '1.16.1'),
('PMIx', '4.2.6'),
('UCX-ROCM', '1.15.0', '-rocm'),
]
configopts = ' -with-rocm=/opt/rocm '
configopts += ' CC=pgcc CXX=pgc++ FC=pgfortran'
configopts += ' CXXFLAGS="-fPIC"'
# 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 += ' --with-ucx=$EBROOTUCX'
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': [], }
moduleclass = 'mpi'

View File

@ -19,7 +19,7 @@ provide a reference implementation of the PMI-server that demonstrates
the desired level of scalability.
"""
toolchain = {'name': 'GCC', 'version': '12.2.0'}
toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
toolchainopts = {'pic': True}
source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s']

27
s/stda/stda-1.6.3.eb Normal file
View File

@ -0,0 +1,27 @@
# IT4Innovations 2024
# LK 2024
easyblock = 'Binary'
name = 'stda'
version = '1.6.3'
homepage = 'https://github.com/grimme-lab/stda'
description = """stda program for computing excited states and response functions via simplified TD-DFT methods (sTDA, sTD-DFT, and SF-sTD-DFT) """
toolchain = SYSTEM
source_urls = ['https://github.com/grimme-lab/stda/releases/download/v%(version)s/']
sources = ['%(name)s_v%(version)s']
checksums = ['9701f1d08e79dd560f44fbae61d126eaacd944eb8f67fca0820621b90033af80']
install_cmd = 'mkdir %(installdir)s/bin && '
install_cmd += 'mv %(name)s_v%(version)s %(installdir)s/bin/%(name)s '
sanity_check_paths = {
'files': ['bin/stda'],
'dirs': [],
}
moduleclass = 'chem'

View File

@ -0,0 +1,50 @@
# IT4Innovations
# LK 2024
easyblock = 'ConfigureMake'
name = 'UCX-ROCM'
version = '1.15.0'
versionsuffix = '-rocm'
homepage = 'http://www.openucx.org/'
description = """Unified Communication X
An open-source production grade communication framework for data centric
and high-performance applications
This module adds the UCX CUDA support.
"""
toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
toolchainopts = {'pic': True}
source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s']
sources = [{'filename': 'ucx-%(version)s.tar.gz', 'alt_location': 'UCX'}]
#patches = ['%(name)s-1.11.0_link_against_existing_UCX_libs.patch']
checksums = [
('457187fa020e526609ba91e7750c9941d57bd57d60d6eed317b40ad8824aca93',
'4b202087076bc1c98f9249144f0c277a8ea88ad4ca6f404f94baa9cb3aebda6d'),
{'UCX-CUDA-1.11.0_link_against_existing_UCX_libs.patch':
'457187fa020e526609ba91e7750c9941d57bd57d60d6eed317b40ad8824aca93'},
]
builddependencies = [
('binutils', '2.39'),
('Autotools', '20220317'),
('pkgconf', '1.9.3'),
]
dependencies = [
('zlib', '1.2.12'),
('UCX', '1.15.0', '-rocm'),
]
configopts = '--with-rocm=/opt/rocm --without-knem --enable-optimizations --enable-cma --enable-mt --with-verbs '
configopts += '--without-java --without-go --disable-doxygen-doc '
sanity_check_paths = {
'files': [],
'dirs': ['bin', 'include'],
}
moduleclass = 'lib'

View File

@ -45,7 +45,9 @@ configopts += '--without-java --without-go --disable-doxygen-doc '
import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA", "BARBORA"]:
configopts += '--with-xpmem --with-knem=/opt/knem-1.1.4.90mlnx1'
configopts += '--with-xpmem --with-knem=/opt/knem-1.1.4.90mlnx1'
else:
configopts += '--with-xpmem --with-knem=/opt/knem-1.1.4.90mlnx3'
buildopts = 'V=1'

View File

@ -0,0 +1,56 @@
# IT4Innovations
# LK 2024
easyblock = 'ConfigureMake'
name = 'UCX'
version = '1.15.0'
versionsuffix = '-rocm'
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': '12.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'},
]
builddependencies = [
('binutils', '2.39'),
('Autotools', '20220317'),
('pkgconf', '1.9.3'),
]
osdependencies = [OS_PKG_IBVERBS_DEV]
dependencies = [
('zlib', '1.2.12'),
('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'

View File

@ -0,0 +1,30 @@
# IT4Innovations
# LK 2024
easyblock = 'Binary'
name = 'xtb4stda'
version = '1.0'
homepage = 'https://github.com/grimme-lab/xtb4stda'
description = """Program to calculate the ground state with sTDA-xTB to be used in further stda calculations"""
toolchain = SYSTEM
source_urls = ['https://github.com/grimme-lab/stda/releases/download/v1.6.3/']
sources = ['%(name)s']
checksums = ['aa5ba03321607dccc0bd01196876a16c5825100672c0acc0ac06631eb40b7d8e']
dependencies = [
('stda', '1.6.3')
]
install_cmd = 'mkdir %(installdir)s/bin && '
install_cmd += 'mv %(name)s %(installdir)s/bin/%(name)s '
sanity_check_paths = {
'files': ['bin/xtb4stda'],
'dirs': [],
}
moduleclass = 'chem'