diff --git a/a/Anaconda3/Anaconda3-2020.11.eb b/a/Anaconda3/Anaconda3-2020.11.eb new file mode 100644 index 00000000..7098f76f --- /dev/null +++ b/a/Anaconda3/Anaconda3-2020.11.eb @@ -0,0 +1,28 @@ +# author: Jillian Rowe +# config upgrade to v5.1.0 by Adam Huffman +# config upgrade to v5.0.1, v5.3.0, 2018.12, 2019.07, 2019.10, 2020.2, 2020.11 by J. Hein +# config upgrade to 2019.03 by Davide Vanzo +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' diff --git a/a/Automake/Automake-1.16.2-GCCcore-9.3.0.eb b/a/Automake/Automake-1.16.2-GCCcore-9.3.0.eb new file mode 100644 index 00000000..0bf6022c --- /dev/null +++ b/a/Automake/Automake-1.16.2-GCCcore-9.3.0.eb @@ -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' diff --git a/a/Autotools/Autotools-20200321-GCCcore-9.3.0.eb b/a/Autotools/Autotools-20200321-GCCcore-9.3.0.eb new file mode 100644 index 00000000..8482650b --- /dev/null +++ b/a/Autotools/Autotools-20200321-GCCcore-9.3.0.eb @@ -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' diff --git a/l/libevent/libevent-2.1.12-GCCcore-9.3.0.eb b/l/libevent/libevent-2.1.12-GCCcore-9.3.0.eb new file mode 100644 index 00000000..294ca7a3 --- /dev/null +++ b/l/libevent/libevent-2.1.12-GCCcore-9.3.0.eb @@ -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' diff --git a/n/NVHPC/NVHPC-21.2-OpenMPI-4.0.5.eb b/n/NVHPC/NVHPC-21.2-OpenMPI-4.0.5.eb new file mode 100644 index 00000000..b06e1ded --- /dev/null +++ b/n/NVHPC/NVHPC-21.2-OpenMPI-4.0.5.eb @@ -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' diff --git a/n/NVHPC/NVHPC-21.2.eb b/n/NVHPC/NVHPC-21.2.eb new file mode 100644 index 00000000..81c5613f --- /dev/null +++ b/n/NVHPC/NVHPC-21.2.eb @@ -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' diff --git a/o/OpenMPI/OpenMPI-4.0.5-GCC-10.2.0-Java-13.0.1.eb b/o/OpenMPI/OpenMPI-4.0.5-GCC-10.2.0-Java-13.0.1.eb new file mode 100644 index 00000000..fba55e83 --- /dev/null +++ b/o/OpenMPI/OpenMPI-4.0.5-GCC-10.2.0-Java-13.0.1.eb @@ -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' diff --git a/o/OpenMPI/OpenMPI-4.0.5-NVHPC-21.2.eb b/o/OpenMPI/OpenMPI-4.0.5-NVHPC-21.2.eb new file mode 100644 index 00000000..c4d54cd5 --- /dev/null +++ b/o/OpenMPI/OpenMPI-4.0.5-NVHPC-21.2.eb @@ -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' diff --git a/p/phono3py/phono3py-1.22.2-conda.eb b/p/phono3py/phono3py-1.22.2-conda.eb new file mode 100644 index 00000000..75f3f86b --- /dev/null +++ b/p/phono3py/phono3py-1.22.2-conda.eb @@ -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' diff --git a/u/UCX/UCX-1.9.0-GCCcore-9.3.0.eb b/u/UCX/UCX-1.9.0-GCCcore-9.3.0.eb new file mode 100644 index 00000000..67f7a5f8 --- /dev/null +++ b/u/UCX/UCX-1.9.0-GCCcore-9.3.0.eb @@ -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'