new file: a/Anaconda3/Anaconda3-2020.11.eb

new file:   a/Automake/Automake-1.16.2-GCCcore-9.3.0.eb
	new file:   a/Autotools/Autotools-20200321-GCCcore-9.3.0.eb
	new file:   l/libevent/libevent-2.1.12-GCCcore-9.3.0.eb
	new file:   n/NVHPC/NVHPC-21.2-OpenMPI-4.0.5.eb
	new file:   n/NVHPC/NVHPC-21.2.eb
	new file:   o/OpenMPI/OpenMPI-4.0.5-GCC-10.2.0-Java-13.0.1.eb
	new file:   o/OpenMPI/OpenMPI-4.0.5-NVHPC-21.2.eb
	new file:   p/phono3py/phono3py-1.22.2-conda.eb
	new file:   u/UCX/UCX-1.9.0-GCCcore-9.3.0.eb
This commit is contained in:
Lukáš Krupčík 2021-03-18 08:07:12 +01:00
parent f09fcdf0c3
commit 437d2b2cdd
10 changed files with 459 additions and 0 deletions

View File

@ -0,0 +1,28 @@
# author: Jillian Rowe <jillian.e.rowe@gmail.com>
# config upgrade to v5.1.0 by Adam Huffman <adam.huffman@bdi.ox.ac.uk>
# config upgrade to v5.0.1, v5.3.0, 2018.12, 2019.07, 2019.10, 2020.2, 2020.11 by J. Hein <joachim.hein@lunarc.lu.se>
# config upgrade to 2019.03 by Davide Vanzo <davide.vanzo@vanderbilt.edu>
easyblock = 'EB_Anaconda'
name = 'Anaconda3'
version = '2020.11'
homepage = 'https://www.anaconda.com'
description = """Built to complement the rich, open source Python community,
the Anaconda platform provides an enterprise-ready data analytics platform
that empowers companies to adopt a modern open data science analytics architecture.
"""
toolchain = SYSTEM
source_urls = ['https://repo.anaconda.com/archive/']
sources = ['%(name)s-%(version)s-Linux-%(arch)s.sh']
checksums = [
{
'%(name)s-%(version)s-Linux-x86_64.sh': 'cf2ff493f11eaad5d09ce2b4feaa5ea90db5174303d5b3fe030e16d29aeef7de',
'%(name)s-%(version)s-Linux-ppc64le.sh': '870535ada0a8ae75eeda8cd2bf7dde853ac9f4949b20e1b5641f1843a655f3b8',
}
]
moduleclass = 'lang'

View File

@ -0,0 +1,35 @@
# IT4Innovations 2021
# LK
easyblock = 'ConfigureMake'
name = 'Automake'
version = '1.16.2'
homepage = 'https://www.gnu.org/software/automake/automake.html'
description = "Automake: GNU Standards-compliant Makefile generator"
toolchain = {'name': 'GCCcore', 'version': '9.3.0'}
source_urls = [GNU_SOURCE]
sources = [SOURCELOWER_TAR_GZ]
checksums = ['b2f361094b410b4acbf4efba7337bdb786335ca09eb2518635a09fb7319ca5c1']
builddependencies = [
('binutils', '2.34'),
# non-standard Perl modules are required,
# see https://github.com/easybuilders/easybuild-easyconfigs/issues/1822
('Perl', '5.30.2'),
]
dependencies = [
('Autoconf', '2.69'),
]
sanity_check_paths = {
'files': ['bin/automake', 'bin/aclocal'],
'dirs': []
}
moduleclass = 'devel'

View File

@ -0,0 +1,27 @@
# IT4Innovations 2021
# LK
easyblock = 'Bundle'
name = 'Autotools'
version = '20200321' # date of the most recent change
homepage = 'https://autotools.io'
description = """
This bundle collect the standard GNU build tools: Autoconf, Automake
and libtool
"""
toolchain = {'name': 'GCCcore', 'version': '9.3.0'}
dependencies = [
('Autoconf', '2.69'), # 20120424
('Automake', '1.16.2'), # 20200321
('libtool', '2.4.6'), # 20150215
]
# Pure bundle -- no need to specify 'binutils' used when building GCCcore
# toolchain as build dependency
moduleclass = 'devel'

View File

@ -0,0 +1,40 @@
# IT4Innovations 2021
# LK
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': '9.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.34'),
('pkg-config', '0.29.2'),
]
dependencies = [
('zlib', '1.2.11'),
]
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'

View File

@ -0,0 +1,88 @@
# IT4Innovations 2021
# LK
name = 'NVHPC'
version = '21.2'
versionsuffix = '-OpenMPI-4.0.5'
homepage = 'https://developer.nvidia.com/hpc-sdk/'
description = """C, C++ and Fortran compilers included with the NVIDIA HPC SDK (previously: PGI)"""
toolchain = SYSTEM
# By downloading, you accept the HPC SDK Software License Agreement (https://docs.nvidia.com/hpc-sdk/eula/index.html)
accept_eula = True
source_urls = ['https://developer.download.nvidia.com/hpc-sdk/%(version)s/']
local_tarball_tmpl = 'nvhpc_2021_%%(version_major)s%%(version_minor)s_Linux_%s_cuda_multi.tar.gz'
sources = [local_tarball_tmpl % '%(arch)s']
checksums = [
{
local_tarball_tmpl % 'x86_64':
'8905e96a063baeca1da35f7fd20e3376',
}
]
local_gccver = '9.3.0'
dependencies = [
('GCCcore', local_gccver),
('binutils', '2.34', '', ('GCCcore', local_gccver)),
# This is necessary to avoid cases where just libnuma.so.1 is present in the system and -lnuma fails
('numactl', '2.0.13', '', ('GCCcore', local_gccver))
]
# specify default CUDA version that should be used by NVHPC
# should match one of the CUDA versions that are included with this NVHPC version
# (see install_components/Linux_x86_64/20.7/cuda/)
# for NVHPC 20.7, those are: 11.0, 10.2, 10.1;
# this version can be tweaked from the EasyBuild command line with
# --try-amend=default_cuda_version="10.2" (for example)
default_cuda_version = '11.0'
# NVHPC EasyBlock supports some features, which can be set via CLI or this easyconfig.
# The following list gives examples for the easyconfig
#
# NVHPC needs CUDA to work. Two options are available: 1) Use NVHPC-bundled CUDA, 2) use system CUDA
# 1) Bundled CUDA
# If no easybuild dependency to CUDA is present, the bundled CUDA is taken. A version needs to be specified with
# default_cuda_version = "11.0"
# in this easyconfig file; alternatively, it can be specified through the command line during installation with
# --try-amend=default_cuda_version="10.2"
# 2) CUDA provided via EasyBuild
# Use CUDAcore as a dependency, for example
# dependencies = [('CUDAcore', '11.0.2')]
# The parameter default_cuda_version still can be set as above.
# If not set, it will be deduced from the CUDA module (via $EBVERSIONCUDA)
#
# Define a NVHPC-default Compute Capability
# cuda_compute_capabilities = "8.0"
cuda_compute_capabilities = '7.0' #V100 GPU
# Can also be specified on the EasyBuild command line via --cuda-compute-capabilities=8.0
# Only single values supported, not lists of values!
#
# Options to add/remove things to/from environment module (defaults shown)
# module_byo_compilers = Yes # Remove compilers from PATH (Bring-your-own compilers)
# module_nvhpc_own_mpi = Yes # Add NVHPC's own pre-compiled OpenMPI
# module_add_math_libs = Yes # Add NVHPC's math libraries (which should be there from CUDA anyway)
# module_add_profilers = Yes # Add NVHPC's NVIDIA Profilers
# module_add_nccl = Yes # Add NVHPC's NCCL library
# module_add_nvshmem = Yes # Add NVHPC's NVSHMEM library
# module_add_cuda = Yes # Add NVHPC's bundled CUDA
local_openmpi_path = "Linux_x86_64/%(version)s/comm_libs/openmpi4/openmpi-4.0.5"
modextrapaths = {
'PATH': "%s/bin" % (local_openmpi_path),
'LD_LIBRARY_PATH': "%s/lib" % (local_openmpi_path),
'LIBRARY_PATH': "%s/lib" % (local_openmpi_path),
'CPATH': "%s/include" % (local_openmpi_path),
'MANPATH': "%s/share/man" % (local_openmpi_path),
'PKG_CONFIG_PATH': "%s/pkgconfig" % (local_openmpi_path),
}
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',
}
moduleclass = 'compiler'

71
n/NVHPC/NVHPC-21.2.eb Normal file
View File

@ -0,0 +1,71 @@
# IT4Innovations 2021
# LK
name = 'NVHPC'
version = '21.2'
homepage = 'https://developer.nvidia.com/hpc-sdk/'
description = """C, C++ and Fortran compilers included with the NVIDIA HPC SDK (previously: PGI)"""
toolchain = SYSTEM
# By downloading, you accept the HPC SDK Software License Agreement (https://docs.nvidia.com/hpc-sdk/eula/index.html)
accept_eula = True
source_urls = ['https://developer.download.nvidia.com/hpc-sdk/%(version)s/']
local_tarball_tmpl = 'nvhpc_2021_%%(version_major)s%%(version_minor)s_Linux_%s_cuda_multi.tar.gz'
sources = [local_tarball_tmpl % '%(arch)s']
checksums = [
{
local_tarball_tmpl % 'x86_64':
'8905e96a063baeca1da35f7fd20e3376',
}
]
local_gccver = '9.3.0'
dependencies = [
('GCCcore', local_gccver),
('binutils', '2.34', '', ('GCCcore', local_gccver)),
# This is necessary to avoid cases where just libnuma.so.1 is present in the system and -lnuma fails
('numactl', '2.0.13', '', ('GCCcore', local_gccver))
]
# specify default CUDA version that should be used by NVHPC
# should match one of the CUDA versions that are included with this NVHPC version
# (see install_components/Linux_x86_64/20.7/cuda/)
# for NVHPC 20.7, those are: 11.0, 10.2, 10.1;
# this version can be tweaked from the EasyBuild command line with
# --try-amend=default_cuda_version="10.2" (for example)
default_cuda_version = '11.0'
# NVHPC EasyBlock supports some features, which can be set via CLI or this easyconfig.
# The following list gives examples for the easyconfig
#
# NVHPC needs CUDA to work. Two options are available: 1) Use NVHPC-bundled CUDA, 2) use system CUDA
# 1) Bundled CUDA
# If no easybuild dependency to CUDA is present, the bundled CUDA is taken. A version needs to be specified with
# default_cuda_version = "11.0"
# in this easyconfig file; alternatively, it can be specified through the command line during installation with
# --try-amend=default_cuda_version="10.2"
# 2) CUDA provided via EasyBuild
# Use CUDAcore as a dependency, for example
# dependencies = [('CUDAcore', '11.0.2')]
# The parameter default_cuda_version still can be set as above.
# If not set, it will be deduced from the CUDA module (via $EBVERSIONCUDA)
#
# Define a NVHPC-default Compute Capability
# cuda_compute_capabilities = "8.0"
cuda_compute_capabilities = '7.0' #V100 GPU
# Can also be specified on the EasyBuild command line via --cuda-compute-capabilities=8.0
# Only single values supported, not lists of values!
#
# Options to add/remove things to/from environment module (defaults shown)
# module_byo_compilers = Yes # Remove compilers from PATH (Bring-your-own compilers)
# module_nvhpc_own_mpi = False # Add NVHPC's own pre-compiled OpenMPI
# module_add_math_libs = Yes # Add NVHPC's math libraries (which should be there from CUDA anyway)
# module_add_profilers = Yes # Add NVHPC's NVIDIA Profilers
# module_add_nccl = Yes # Add NVHPC's NCCL library
# module_add_nvshmem = Yes # Add NVHPC's NVSHMEM library
# module_add_cuda = Yes # Add NVHPC's bundled CUDA
# this bundle serves as a compiler-only toolchain, so it should be marked as compiler (important for HMNS)
moduleclass = 'compiler'

View File

@ -0,0 +1,68 @@
# IT4Innovations 2021
# LK
easyblock = 'ConfigureMake'
name = 'OpenMPI'
version = '4.0.5'
versionsuffix= '-Java-13.0.1'
homepage = 'http://www.open-mpi.org/'
description = """The Open MPI Project is an open source MPI-2 implementation."""
toolchain = {'name': 'GCC', 'version': '10.2.0'}
source_urls = ['https://github.com/open-mpi/ompi/archive/']
sources = ['v4.0.4.tar.gz']
dependencies = [
('hwloc', '2.2.0'),
('zlib', '1.2.11'),
('UCX', '1.9.0',),
('libfabric', '1.11.0'),
('PMIx', '3.1.5'),
('libevent', '2.1.12'),
('Java', '13.0.1', '', True),
]
preconfigopts = './autogen.pl && '
configopts = '--enable-shared --enable-mpi-thread-multiple --with-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 '
configopts += '--enable-mpi-java ' # Java support RT#28536
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,27 @@
# IT4Innovations 2021
# LK
name = 'OpenMPI'
version = '4.0.5'
homepage = 'https://www.open-mpi.org/'
description = """The Open MPI Project is an open source MPI-3 implementation."""
toolchain = {'name': 'NVHPC', 'version': '21.2'}
source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['572e777441fd47d7f06f1b8a166e7f44b8ea01b8b2e79d1e299d509725d1bd05']
dependencies = [
('UCX', '1.9.0') ,
]
configopts = '--enable-shared --enable-mpi-thread-multiple --with-verbs '
configopts += '--enable-mpirun-prefix-by-default '
configopts += '--with-tm=/opt/pbs ' # Enable PBS
configopts += '--enable-mpi-cxx ' # Enable building the C++ MPI bindings
configopts += '--with-ucx=$EBROOTUCX '
configopts += '--with-cuda=$EBROOTNVHPC/Linux_x86_64/21.2/cuda/11.2 '
moduleclass = 'mpi'

View File

@ -0,0 +1,27 @@
# IT4Innovations 2021
# LK
easyblock = "Conda"
name = 'phono3py'
version = '1.22.2'
versionsuffix = '-conda'
homepage = 'http://phonopy.sourceforge.net/phono3py/index.html'
description = """This software calculates phonon-phonon interaction related properties"""
toolchain = SYSTEM
dependencies = [
('Anaconda3', '2020.11'),
]
requirements = "%(namelower)s=%(version)s python=3.8"
channels = ['atztogo']
sanity_check_paths = {
'files': ['bin/phono3py', 'bin/phonopy'],
'dirs': ['bin', 'lib']
}
moduleclass = 'phys'

View File

@ -0,0 +1,48 @@
# IT4Innovations 2021
# LK
easyblock = 'ConfigureMake'
name = 'UCX'
version = '1.9.0'
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': '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']
checksums = ['a7a2c8841dc0d5444088a4373dc9b9cc68dbffcd917c1eba92ca8ed8e5e635fb']
builddependencies = [
('binutils', '2.34'),
('Autotools', '20200321'),
('pkg-config', '0.29.2'),
]
osdependencies = [OS_PKG_IBVERBS_DEV]
dependencies = [
('numactl', '2.0.13'),
]
configure_cmd = "contrib/configure-release"
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']
}
sanity_check_commands = ["ucx_info -d"]
moduleclass = 'lib'