From 7e9ee7c58dd4066d5a53dea6ab2d8e05c22d099f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Krup=C4=8D=C3=ADk?= Date: Wed, 23 Oct 2019 12:03:27 +0200 Subject: [PATCH] new file: h/hwloc/hwloc-1.11.12-GCCcore-8.2.0.eb new file: h/hwloc/hwloc-1.11.12-PGI-19.7-GCC-8.2.0-2.31.1.eb new file: n/numactl/numactl-2.0.12-GCCcore-8.2.0.eb new file: o/OpenMPI/OpenMPI-3.1.4-PGI-19.7-GCC-8.2.0-2.31.1.eb modified: p/PGI/PGI-19.7-GCC-8.2.0-2.31.1.eb --- h/hwloc/hwloc-1.11.12-GCCcore-8.2.0.eb | 50 +++++++++++++ ...hwloc-1.11.12-PGI-19.7-GCC-8.2.0-2.31.1.eb | 36 ++++++++++ n/numactl/numactl-2.0.12-GCCcore-8.2.0.eb | 34 +++++++++ ...OpenMPI-3.1.4-PGI-19.7-GCC-8.2.0-2.31.1.eb | 72 +++++++++++++++++++ p/PGI/PGI-19.7-GCC-8.2.0-2.31.1.eb | 11 +++ 5 files changed, 203 insertions(+) create mode 100644 h/hwloc/hwloc-1.11.12-GCCcore-8.2.0.eb create mode 100644 h/hwloc/hwloc-1.11.12-PGI-19.7-GCC-8.2.0-2.31.1.eb create mode 100644 n/numactl/numactl-2.0.12-GCCcore-8.2.0.eb create mode 100644 o/OpenMPI/OpenMPI-3.1.4-PGI-19.7-GCC-8.2.0-2.31.1.eb diff --git a/h/hwloc/hwloc-1.11.12-GCCcore-8.2.0.eb b/h/hwloc/hwloc-1.11.12-GCCcore-8.2.0.eb new file mode 100644 index 00000000..b7b4fa36 --- /dev/null +++ b/h/hwloc/hwloc-1.11.12-GCCcore-8.2.0.eb @@ -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' diff --git a/h/hwloc/hwloc-1.11.12-PGI-19.7-GCC-8.2.0-2.31.1.eb b/h/hwloc/hwloc-1.11.12-PGI-19.7-GCC-8.2.0-2.31.1.eb new file mode 100644 index 00000000..95bf203a --- /dev/null +++ b/h/hwloc/hwloc-1.11.12-PGI-19.7-GCC-8.2.0-2.31.1.eb @@ -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' diff --git a/n/numactl/numactl-2.0.12-GCCcore-8.2.0.eb b/n/numactl/numactl-2.0.12-GCCcore-8.2.0.eb new file mode 100644 index 00000000..c4efbd02 --- /dev/null +++ b/n/numactl/numactl-2.0.12-GCCcore-8.2.0.eb @@ -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' diff --git a/o/OpenMPI/OpenMPI-3.1.4-PGI-19.7-GCC-8.2.0-2.31.1.eb b/o/OpenMPI/OpenMPI-3.1.4-PGI-19.7-GCC-8.2.0-2.31.1.eb new file mode 100644 index 00000000..b8136abc --- /dev/null +++ b/o/OpenMPI/OpenMPI-3.1.4-PGI-19.7-GCC-8.2.0-2.31.1.eb @@ -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' diff --git a/p/PGI/PGI-19.7-GCC-8.2.0-2.31.1.eb b/p/PGI/PGI-19.7-GCC-8.2.0-2.31.1.eb index 6ff52019..17bfcd3d 100644 --- a/p/PGI/PGI-19.7-GCC-8.2.0-2.31.1.eb +++ b/p/PGI/PGI-19.7-GCC-8.2.0-2.31.1.eb @@ -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'