Merge branch 'it4i-anselm'

This commit is contained in:
Lukáš Krupčík 2019-10-23 12:04:15 +02:00
commit 71621cf7eb
5 changed files with 203 additions and 0 deletions

View File

@ -0,0 +1,50 @@
# IT4Innovations 2019
easyblock = 'ConfigureMake'
name = 'hwloc'
version = '1.11.12'
homepage = 'https://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 computing
hardware so as to exploit it accordingly and efficiently.
"""
toolchain = {'name': 'GCCcore', 'version': '8.2.0'}
# need to build with -fno-tree-vectorize to avoid segfaulting lstopo on Intel Skylake
# cfr. https://github.com/open-mpi/hwloc/issues/315
toolchainopts = {'vectorize': False}
source_urls = ['https://www.open-mpi.org/software/hwloc/v%(version_major_minor)s/downloads/']
sources = [SOURCE_TAR_GZ]
checksums = ['f1d49433e605dd653a77e1478a78cee095787d554a94afe40d1376bca6708ca5']
builddependencies = [
('binutils', '2.31.1'),
]
dependencies = [
('numactl', '2.0.12'),
('libxml2', '2.9.9', '', True),
('libpciaccess', '0.14'),
]
configopts = "--enable-libnuma=$EBROOTNUMACTL "
configopts += "--disable-cairo --disable-opencl --disable-cuda --disable-nvml --disable-gl --disable-libudev "
sanity_check_paths = {
'files': ['bin/lstopo', 'include/hwloc/linux.h',
'lib/libhwloc.%s' % SHLIB_EXT],
'dirs': ['share/man/man3'],
}
sanity_check_commands = ['lstopo']
moduleclass = 'system'

View File

@ -0,0 +1,36 @@
# IT4Innovations 2019
easyblock = 'ConfigureMake'
name = 'hwloc'
version = '1.11.12'
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 computing hardware so as to exploit it accordingly and efficiently."""
toolchain = {'name': 'PGI', 'version': '19.7-GCC-8.2.0-2.31.1'}
toolchainopts = {'pic': True}
source_urls = ['https://download.open-mpi.org/release/hwloc/v1.11/']
sources = ['hwloc-1.11.12.tar.gz']
dependencies = [
('numactl', '2.0.12', '', ('GCCcore', '8.2.0'))
]
configopts = "--enable-libnuma=$EBROOTNUMACTL"
sanity_check_paths = {
'files': ['bin/lstopo', 'include/hwloc/linux.h',
'lib/libhwloc.%s' % SHLIB_EXT],
'dirs': ['share/man/man3'],
}
sanity_check_commands = ['lstopo']
moduleclass = 'system'

View File

@ -0,0 +1,34 @@
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': 'GCCcore', 'version': '8.2.0'}
toolchainopts = {'pic': True}
source_urls = ['https://github.com/numactl/numactl/archive/']
sources = ['v%(version)s.tar.gz']
checksums = ['7c3e819c2bdeb883de68bafe88776a01356f7ef565e75ba866c4b49a087c6bdf']
builddependencies = [
('binutils', '2.31.1'),
('Autotools', '20180311'),
]
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,72 @@
# IT4Innovations 2019
easyblock = 'ConfigureMake'
name = 'OpenMPI'
version = '3.1.4'
homepage = 'http://www.open-mpi.org/'
description = """The Open MPI Project is an open source MPI-2 implementation."""
toolchain = {'name': 'PGI', 'version': '19.7-GCC-8.2.0-2.31.1'}
toolchainopts = {'pic': True}
source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads']
sources = [SOURCELOWER_TAR_GZ]
patches = ['%(name)s-3.1.3-add_ompi_datatype_attribute_to_release_ucp_datatype.patch',
# 'OpenMPI-3.1_fix-ib-query.patch',
]
checksums = [
'a7c34ad052ea8201ed9e7389994069fe6996403beabdd2d711caf0532808156c', # openmpi-3.1.4.tar.gz
# OpenMPI-3.1.3-add_ompi_datatype_attribute_to_release_ucp_datatype.patch
'46fa94eb417954bdb297291bad4f4d32018af4911bebf3e59af6276eba6a50a9',
]
dependencies = [
('zlib', '1.2.11'),
('hwloc', '1.11.12', '', ('GCCcore', '8.2.0'))
]
#preconfigopts = 'export CFLAGS="-O1"'
configopts = ' CFLAGS="-O1" --with-threads=posix --enable-shared --enable-static --enable-mpi-thread-multiple --with-verbs '
# suppress failure modes in relation to mpirun path
configopts += '--enable-mpirun-prefix-by-default '
configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support
# statically link component, don't do dynamic loading
configopts += '--disable-dlopen '
configopts += '--with-tm=/opt/pbs/default ' # Enable PBS
preconfigopts = 'export LIBS="-ldl" && export CC="pgcc -noswitcherror" && export CXX="pgc++ -noswitcherror" && export FC="pgfortran -noswitcherror" && '
# needed for --with-verbs
osdependencies = [('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel')]
libs = [
"mpi_cxx",
"mpi_mpifh",
"mpi",
"ompitrace",
"open-pal",
"open-rte",
"vt",
"vt-hyb",
"vt-mpi",
"vt-mpi-unify"]
sanity_check_paths = {
'files': [],
'dirs': ['bin', 'lib', 'include'],
}
sanity_check_commands = [
('mpicc --version | grep pgcc', ''),
('mpicxx --version | grep pgc++', ''),
('mpifort --version | grep pgfortran', ''),
]
modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx4_0',
'OMPI_MCA_oob_tcp_if_include': '10.0.0.0/8',
}
moduleclass = 'mpi'

View File

@ -20,7 +20,18 @@ dependencies = [
('numactl', '2.0.12', '', ('GCCcore', gccver)),
]
configopts = 'export PGI_INSTALL_MPI=true &&'
# license file
license_file = '/apps/licenses/pgi/license.dat'
modextrapaths = {
'PATH': 'linux86-64-llvm/2019/mpi/openmpi-3.1.3/bin',
'LD_LIBRARY_PATH': 'linux86-64-llvm/2019/mpi/openmpi-3.1.3/lib',
'LIBRARY_PATH': 'linux86-64-llvm/2019/mpi/openmpi-3.1.3/lib',
'CPATH': 'linux86-64-llvm/2019/mpi/openmpi-3.1.3/include',
'MANPATH': 'linux86-64-llvm/2019/mpi/openmpi-3.1.3/share/man',
'PKG_CONFIG_PATH': 'linux86-64-llvm/2019/mpi/openmpi-3.1.3/lib/pkgconfig',
}
moduleclass = 'compiler'