From 42114efddb61dec5695cd39434e0d19d9305097a Mon Sep 17 00:00:00 2001
From: Damian Alvarez <swmanage@juwels02.ib.juwels.fzj.de>
Date: Fri, 14 Feb 2020 15:59:56 +0100
Subject: [PATCH] General update, including new MNS

---
 Custom_EasyBlocks/2019a/boost.py              | 272 ++++++++++++++++++
 Custom_EasyBlocks/2019a/elpa.py               |   1 +
 .../versionindependentpythonpackage.py        | 101 +++++++
 Custom_EasyBlocks/2019a/pgi.py                |  12 +-
 Custom_EasyBlocks/2019a/psmpi.py              |  20 +-
 Custom_MNS/2019a/custom_hierarchical_mns.py   |   1 +
 .../2019a/flexible_custom_hierarchical_mns.py |  26 ++
 ....69.0-gmvapich2c-2019a-GDR-Python-3.6.8.eb |  30 ++
 Golden_Repo/2019a/c/CUDA/CUDA-10.1.105.eb     |   2 +-
 .../2019a/e/EasyBuild/EasyBuild-3.9.4.eb      |  45 +++
 .../2019a/i/icc/icc-2019.5.281-GCC-8.3.0.eb   |  38 +++
 .../iccifort/iccifort-2019.5.281-GCC-8.3.0.eb |  29 ++
 .../i/ifort/ifort-2019.5.281-GCC-8.3.0.eb     |  36 +++
 .../impi-settings-2019-UCX-UD.eb              |  25 ++
 .../impi-settings-2019-default.eb             |  25 ++
 .../impi-settings-2019-large-job-hybrid.eb    |  25 ++
 .../impi-settings-2019-large-job-mpi.eb       |  25 ++
 ...018.5.288-iccifort-2019.3.199-GCC-8.3.0.eb |  24 +-
 ...019.3.199-iccifort-2019.3.199-GCC-8.3.0.eb |  15 +-
 ...019.6.154-iccifort-2019.5.281-GCC-8.3.0.eb |  48 ++++
 .../c/CDO/CDO-1.9.5-ipsmpi-2019a.eb           |  34 +++
 .../GSL-2.5-iccifort-2019.5.281-GCC-8.3.0.eb  |  22 ++
 .../jusuf_overlay/i/iimpi/iimpi-2019a.eb      |  24 ++
 .../i/imkl/imkl-2019.5.281-iimpi-2019a.eb     |  32 +++
 .../i/imkl/imkl-2019.5.281-ipsmpi-2019a-mt.eb |  32 +++
 .../i/imkl/imkl-2019.5.281-ipsmpi-2019a.eb    |  32 +++
 .../jusuf_overlay/i/imkl/imkl-2019.5.281.eb   |  36 +++
 .../i/intel-para/intel-para-2019a-mt.eb       |  27 ++
 .../i/intel-para/intel-para-2019a.eb          |  27 ++
 .../jusuf_overlay/i/ipsmpi/ipsmpi-2019a-mt.eb |  24 ++
 .../jusuf_overlay/i/ipsmpi/ipsmpi-2019a.eb    |  23 ++
 .../2019a/jusuf_overlay/j/JUBE/JUBE-2.3.0.eb  |  32 +++
 ...bxc-3.0.1-iccifort-2019.5.281-GCC-8.3.0.eb |  35 +++
 .../jusuf_overlay/n/nvidia/nvidia-driver.eb   |  32 +++
 .../p/pscom/pscom-Default-GCCcore-8.3.0.eb    |  41 +++
 .../p/psmpi/psmpi-5.2.2-1-GCC-8.3.0.eb        |  35 +++
 ....2.2-1-iccifort-2019.3.199-GCC-8.3.0-mt.eb |  36 +++
 ...i-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0.eb |  35 +++
 ....2.2-1-iccifort-2019.5.281-GCC-8.3.0-mt.eb |  36 +++
 ...i-5.2.2-1-iccifort-2019.5.281-GCC-8.3.0.eb |  35 +++
 ...TS-2.2.26-iccifort-2019.5.281-GCC-8.3.0.eb |  41 +++
 .../MVAPICH2/MVAPICH2-2.3.3-GCC-8.3.0-GDR.eb  | 106 +++++++
 .../MVAPICH2-2.3.3-PGI-19.3-GCC-8.3.0-GDR.eb  | 121 ++++++++
 .../impi-settings-2019-default.eb             |  25 ++
 ...019.3.199-iccifort-2019.3.199-GCC-8.3.0.eb |  15 +-
 .../psmpi-settings-5.2-default.eb             |  23 ++
 .../psmpi-settings-5.2-mt-default.eb          |  23 ++
 .../p/psmpi/psmpi-5.2.2-1-GCC-8.3.0.eb        |  12 +-
 ....2.2-1-iccifort-2019.3.199-GCC-8.3.0-mt.eb |  12 +-
 ...i-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0.eb |  12 +-
 ...xsmm-1.14-iccifort-2019.3.199-GCC-8.3.0.eb |  34 +++
 .../MVAPICH2-2.3-GDR-default.eb               |  26 ++
 .../MVAPICH2/MVAPICH2-2.3.2-GCC-8.3.0-GDR.eb  |  12 +-
 .../MVAPICH2-2.3.2-PGI-19.3-GCC-8.3.0-GDR.eb  |  12 +-
 .../MVAPICH2/MVAPICH2-2.3.3-GCC-8.3.0-GDR.eb  | 103 +++++++
 .../MVAPICH2-2.3.3-PGI-19.3-GCC-8.3.0-GDR.eb  | 118 ++++++++
 Golden_Repo/2019a/n/nvidia/nvidia-driver.eb   |  32 +++
 .../2019a/p/PGI/PGI-19.10-GCC-8.3.0.eb        |  39 +++
 .../p/PLUMED/PLUMED-2.5.3-intel-2019a.eb      |  50 ++++
 .../p/PLUMED/PLUMED-2.5.3-intel-para-2019a.eb |  50 ++++
 .../2019a/p/pscom/pscom-5.2-default.eb        |  36 +++
 .../psmpi-settings-5.2-UCX-RC.eb              |  23 ++
 .../psmpi-settings-5.2-UCX-UD.eb              |  23 ++
 .../psmpi-settings-5.2-default.eb             |  18 ++
 .../psmpi-settings-5.2-large-job-hybrid.eb    |  23 ++
 .../psmpi-settings-5.2-large-job-mpi.eb       |  24 ++
 .../psmpi-settings-5.2-mt-UCX-RC.eb           |  23 ++
 .../psmpi-settings-5.2-mt-UCX-UD.eb           |  23 ++
 .../psmpi-settings-5.2-mt-default.eb          |  18 ++
 .../psmpi-settings-5.2-mt-large-job-hybrid.eb |  23 ++
 .../psmpi-settings-5.2-mt-large-job-mpi.eb    |  24 ++
 .../2019a/p/psmpi/psmpi-5.2.2-1-GCC-8.3.0.eb  |  11 +-
 ....2.2-1-iccifort-2019.3.199-GCC-8.3.0-mt.eb |  11 +-
 ...i-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0.eb |  11 +-
 ...i-5.2.2-1-iccifort-2019.5.281-GCC-8.3.0.eb |  44 +++
 .../2019a/u/UCX/UCX-1.5.1-GCCcore-8.3.0.eb    |  10 +-
 .../2019a/u/UCX/UCX-1.6.1-GCCcore-8.3.0.eb    |  70 +++++
 .../2019a/u/UCX/UCX-1.7.0-GCCcore-8.3.0.eb    |  70 +++++
 .../u/UCX/UCX-1.7.0-rc1-GCCcore-8.3.0.eb      |  70 +++++
 Golden_Repo/2019a/u/UCX/UCX-libibcm.patch     |  20 ++
 80 files changed, 2785 insertions(+), 86 deletions(-)
 create mode 100644 Custom_EasyBlocks/2019a/boost.py
 create mode 100644 Custom_EasyBlocks/2019a/generic/versionindependentpythonpackage.py
 create mode 100644 Golden_Repo/2019a/b/Boost/Boost-1.69.0-gmvapich2c-2019a-GDR-Python-3.6.8.eb
 create mode 100644 Golden_Repo/2019a/e/EasyBuild/EasyBuild-3.9.4.eb
 create mode 100644 Golden_Repo/2019a/i/icc/icc-2019.5.281-GCC-8.3.0.eb
 create mode 100644 Golden_Repo/2019a/i/iccifort/iccifort-2019.5.281-GCC-8.3.0.eb
 create mode 100644 Golden_Repo/2019a/i/ifort/ifort-2019.5.281-GCC-8.3.0.eb
 create mode 100644 Golden_Repo/2019a/i/impi-settings/impi-settings-2019-UCX-UD.eb
 create mode 100644 Golden_Repo/2019a/i/impi-settings/impi-settings-2019-default.eb
 create mode 100644 Golden_Repo/2019a/i/impi-settings/impi-settings-2019-large-job-hybrid.eb
 create mode 100644 Golden_Repo/2019a/i/impi-settings/impi-settings-2019-large-job-mpi.eb
 create mode 100644 Golden_Repo/2019a/i/impi/impi-2019.6.154-iccifort-2019.5.281-GCC-8.3.0.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/c/CDO/CDO-1.9.5-ipsmpi-2019a.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/g/GSL/GSL-2.5-iccifort-2019.5.281-GCC-8.3.0.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/i/iimpi/iimpi-2019a.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/i/imkl/imkl-2019.5.281-iimpi-2019a.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/i/imkl/imkl-2019.5.281-ipsmpi-2019a-mt.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/i/imkl/imkl-2019.5.281-ipsmpi-2019a.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/i/imkl/imkl-2019.5.281.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/i/intel-para/intel-para-2019a-mt.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/i/intel-para/intel-para-2019a.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/i/ipsmpi/ipsmpi-2019a-mt.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/i/ipsmpi/ipsmpi-2019a.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/j/JUBE/JUBE-2.3.0.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/l/libxc/libxc-3.0.1-iccifort-2019.5.281-GCC-8.3.0.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/n/nvidia/nvidia-driver.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/p/pscom/pscom-Default-GCCcore-8.3.0.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-GCC-8.3.0.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0-mt.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.5.281-GCC-8.3.0-mt.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.5.281-GCC-8.3.0.eb
 create mode 100644 Golden_Repo/2019a/jusuf_overlay/u/UDUNITS/UDUNITS-2.2.26-iccifort-2019.5.281-GCC-8.3.0.eb
 create mode 100644 Golden_Repo/2019a/juwels_overlay/m/MVAPICH2/MVAPICH2-2.3.3-GCC-8.3.0-GDR.eb
 create mode 100644 Golden_Repo/2019a/juwels_overlay/m/MVAPICH2/MVAPICH2-2.3.3-PGI-19.3-GCC-8.3.0-GDR.eb
 create mode 100644 Golden_Repo/2019a/knl_overlay/i/impi-settings/impi-settings-2019-default.eb
 create mode 100644 Golden_Repo/2019a/knl_overlay/p/psmpi-settings/psmpi-settings-5.2-default.eb
 create mode 100644 Golden_Repo/2019a/knl_overlay/p/psmpi-settings/psmpi-settings-5.2-mt-default.eb
 create mode 100644 Golden_Repo/2019a/l/libxsmm/libxsmm-1.14-iccifort-2019.3.199-GCC-8.3.0.eb
 create mode 100644 Golden_Repo/2019a/m/MVAPICH2-settings/MVAPICH2-2.3-GDR-default.eb
 create mode 100644 Golden_Repo/2019a/m/MVAPICH2/MVAPICH2-2.3.3-GCC-8.3.0-GDR.eb
 create mode 100644 Golden_Repo/2019a/m/MVAPICH2/MVAPICH2-2.3.3-PGI-19.3-GCC-8.3.0-GDR.eb
 create mode 100644 Golden_Repo/2019a/n/nvidia/nvidia-driver.eb
 create mode 100644 Golden_Repo/2019a/p/PGI/PGI-19.10-GCC-8.3.0.eb
 create mode 100644 Golden_Repo/2019a/p/PLUMED/PLUMED-2.5.3-intel-2019a.eb
 create mode 100644 Golden_Repo/2019a/p/PLUMED/PLUMED-2.5.3-intel-para-2019a.eb
 create mode 100644 Golden_Repo/2019a/p/pscom/pscom-5.2-default.eb
 create mode 100644 Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-UCX-RC.eb
 create mode 100644 Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-UCX-UD.eb
 create mode 100644 Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-default.eb
 create mode 100644 Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-large-job-hybrid.eb
 create mode 100644 Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-large-job-mpi.eb
 create mode 100644 Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-UCX-RC.eb
 create mode 100644 Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-UCX-UD.eb
 create mode 100644 Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-default.eb
 create mode 100644 Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-large-job-hybrid.eb
 create mode 100644 Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-large-job-mpi.eb
 create mode 100644 Golden_Repo/2019a/p/psmpi/psmpi-5.2.2-1-iccifort-2019.5.281-GCC-8.3.0.eb
 create mode 100644 Golden_Repo/2019a/u/UCX/UCX-1.6.1-GCCcore-8.3.0.eb
 create mode 100644 Golden_Repo/2019a/u/UCX/UCX-1.7.0-GCCcore-8.3.0.eb
 create mode 100644 Golden_Repo/2019a/u/UCX/UCX-1.7.0-rc1-GCCcore-8.3.0.eb
 create mode 100644 Golden_Repo/2019a/u/UCX/UCX-libibcm.patch

diff --git a/Custom_EasyBlocks/2019a/boost.py b/Custom_EasyBlocks/2019a/boost.py
new file mode 100644
index 000000000..e4a99fe6d
--- /dev/null
+++ b/Custom_EasyBlocks/2019a/boost.py
@@ -0,0 +1,272 @@
+##
+# Copyright 2009-2019 Ghent University
+#
+# This file is part of EasyBuild,
+# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en),
+# with support of Ghent University (http://ugent.be/hpc),
+# the Flemish Supercomputer Centre (VSC) (https://www.vscentrum.be),
+# Flemish Research Foundation (FWO) (http://www.fwo.be/en)
+# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en).
+#
+# https://github.com/easybuilders/easybuild
+#
+# EasyBuild is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation v2.
+#
+# EasyBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with EasyBuild.  If not, see <http://www.gnu.org/licenses/>.
+##
+"""
+EasyBuild support for Boost, implemented as an easyblock
+
+@author: Stijn De Weirdt (Ghent University)
+@author: Dries Verdegem (Ghent University)
+@author: Kenneth Hoste (Ghent University)
+@author: Pieter De Baets (Ghent University)
+@author: Jens Timmerman (Ghent University)
+@author: Ward Poelmans (Ghent University)
+@author: Petar Forai (IMP/IMBA)
+@author: Luca Marsella (CSCS)
+@author: Guilherme Peretti-Pezzi (CSCS)
+@author: Joachim Hein (Lund University)
+@author: Michele Dolfi (ETH Zurich)
+"""
+from distutils.version import LooseVersion
+import fileinput
+import glob
+import os
+import re
+import shutil
+import sys
+
+import easybuild.tools.toolchain as toolchain
+from easybuild.framework.easyblock import EasyBlock
+from easybuild.framework.easyconfig import CUSTOM
+from easybuild.tools.build_log import EasyBuildError
+from easybuild.tools.filetools import copy, mkdir, write_file
+from easybuild.tools.modules import get_software_root, get_software_version
+from easybuild.tools.run import run_cmd
+from easybuild.tools.systemtools import UNKNOWN, get_glibc_version, get_shared_lib_ext
+
+
+class EB_Boost(EasyBlock):
+    """Support for building Boost."""
+
+    def __init__(self, *args, **kwargs):
+        """Initialize Boost-specific variables."""
+        super(EB_Boost, self).__init__(*args, **kwargs)
+
+        self.objdir = None
+
+    @staticmethod
+    def extra_options():
+        """Add extra easyconfig parameters for Boost."""
+        extra_vars = {
+            'boost_mpi': [False, "Build mpi boost module", CUSTOM],
+            'boost_multi_thread': [False, "Build boost with multi-thread option", CUSTOM],
+            'toolset': [None, "Toolset to use for Boost configuration ('--with-toolset for bootstrap.sh')", CUSTOM],
+            'mpi_launcher': [None, "Launcher to use when running MPI regression tests", CUSTOM],
+            'only_python_bindings': [False, "Only install Boost.Python library providing Python bindings", CUSTOM],
+            'use_glibcxx11_abi': [None, "Use the GLIBCXX11 ABI", CUSTOM],
+        }
+        return EasyBlock.extra_options(extra_vars)
+
+    def patch_step(self):
+        """Patch Boost source code before building."""
+        super(EB_Boost, self).patch_step()
+
+        # TIME_UTC is also defined in recent glibc versions, so we need to rename it for old Boost versions (<= 1.49)
+        glibc_version = get_glibc_version()
+        old_glibc = glibc_version is not UNKNOWN and LooseVersion(glibc_version) > LooseVersion("2.15")
+        if old_glibc and LooseVersion(self.version) <= LooseVersion("1.49.0"):
+            self.log.info("Patching because the glibc version is too new")
+            files_to_patch = ["boost/thread/xtime.hpp"] + glob.glob("libs/interprocess/test/*.hpp")
+            files_to_patch += glob.glob("libs/spirit/classic/test/*.cpp") + glob.glob("libs/spirit/classic/test/*.inl")
+            for patchfile in files_to_patch:
+                try:
+                    for line in fileinput.input("%s" % patchfile, inplace=1, backup='.orig'):
+                        line = re.sub(r"TIME_UTC", r"TIME_UTC_", line)
+                        sys.stdout.write(line)
+                except IOError, err:
+                    raise EasyBuildError("Failed to patch %s: %s", patchfile, err)
+
+    def configure_step(self):
+        """Configure Boost build using custom tools"""
+
+        # mpi sanity check
+        if self.cfg['boost_mpi'] and not self.toolchain.options.get('usempi', None):
+            raise EasyBuildError("When enabling building boost_mpi, also enable the 'usempi' toolchain option.")
+
+        # create build directory (Boost doesn't like being built in source dir)
+        self.objdir = os.path.join(self.builddir, 'obj')
+        mkdir(self.objdir)
+
+        # generate config depending on compiler used
+        toolset = self.cfg['toolset']
+        if toolset is None:
+            if self.toolchain.comp_family() == toolchain.INTELCOMP:
+                toolset = 'intel-linux'
+            elif self.toolchain.comp_family() == toolchain.GCC:
+                toolset = 'gcc'
+            elif self.toolchain.comp_family() == toolchain.PGI:
+                toolset = 'pgi'
+            else:
+                raise EasyBuildError("Unknown compiler used, don't know what to specify to --with-toolset, aborting.")
+
+        cmd = "%s ./bootstrap.sh --with-toolset=%s --prefix=%s %s"
+        tup = (self.cfg['preconfigopts'], toolset, self.objdir, self.cfg['configopts'])
+        run_cmd(cmd % tup, log_all=True, simple=True)
+
+        if self.cfg['boost_mpi']:
+
+            self.toolchain.options['usempi'] = True
+            # configure the boost mpi module
+            # http://www.boost.org/doc/libs/1_47_0/doc/html/mpi/getting_started.html
+            # let Boost.Build know to look here for the config file
+
+            txt = ''
+            # Check if using a Cray toolchain and configure MPI accordingly
+            if self.toolchain.toolchain_family() == toolchain.CRAYPE:
+                if self.toolchain.PRGENV_MODULE_NAME_SUFFIX == 'gnu':
+                    craympichdir = os.getenv('CRAY_MPICH2_DIR')
+                    craygccversion = os.getenv('GCC_VERSION')
+                    txt = '\n'.join([
+                        'local CRAY_MPICH2_DIR =  %s ;' % craympichdir,
+                        'using gcc ',
+                        ': %s' % craygccversion,
+                        ': CC ',
+                        ': <compileflags>-I$(CRAY_MPICH2_DIR)/include ',
+                        '  <linkflags>-L$(CRAY_MPICH2_DIR)/lib \ ',
+                        '; ',
+                        'using mpi ',
+                        ': CC ',
+                        ': <find-shared-library>mpich ',
+                        ': %s' % self.cfg['mpi_launcher'],
+                        ';',
+                        '',
+                    ])
+                else:
+                    raise EasyBuildError("Bailing out: only PrgEnv-gnu supported for now")
+            else:
+                txt = "using mpi : %s ;" % os.getenv("MPICXX")
+
+            write_file('user-config.jam', txt, append=True)
+
+    def build_boost_variant(self, bjamoptions, paracmd):
+        """Build Boost library with specified options for bjam."""
+        # build with specified options
+        cmd = "%s ./bjam %s %s %s" % (self.cfg['prebuildopts'], bjamoptions, paracmd, self.cfg['buildopts'])
+        run_cmd(cmd, log_all=True, simple=True)
+        # install built Boost library
+        cmd = "%s ./bjam %s install %s %s" % (self.cfg['preinstallopts'], bjamoptions, paracmd, self.cfg['installopts'])
+        run_cmd(cmd, log_all=True, simple=True)
+        # clean up before proceeding with next build
+        run_cmd("./bjam --clean-all", log_all=True, simple=True)
+
+    def build_step(self):
+        """Build Boost with bjam tool."""
+
+        bjamoptions = " --prefix=%s" % self.objdir
+
+        cxxflags = os.getenv('CXXFLAGS')
+        # only disable -D_GLIBCXX_USE_CXX11_ABI if use_glibcxx11_abi was explicitly set to False
+        # None value is the default, which corresponds to default setting (=1 since GCC 5.x)
+        if self.cfg['use_glibcxx11_abi'] is not None:
+            cxxflags += ' -D_GLIBCXX_USE_CXX11_ABI='
+            if self.cfg['use_glibcxx11_abi']:
+                cxxflags += '1'
+            else:
+                cxxflags += '0'
+        if cxxflags is not None:
+            bjamoptions += " cxxflags='%s'" % cxxflags
+        ldflags = os.getenv('LDFLAGS')
+        if ldflags is not None:
+            bjamoptions += " linkflags='%s'" % ldflags
+
+        # specify path for bzip2/zlib if module is loaded
+        for lib in ["bzip2", "zlib"]:
+            libroot = get_software_root(lib)
+            if libroot:
+                bjamoptions += " -s%s_INCLUDE=%s/include" % (lib.upper(), libroot)
+                bjamoptions += " -s%s_LIBPATH=%s/lib" % (lib.upper(), libroot)
+
+        paracmd = ''
+        if self.cfg['parallel']:
+            paracmd = "-j %s" % self.cfg['parallel']
+
+        if self.cfg['only_python_bindings']:
+            # magic incantation to only install Boost Python bindings is... --with-python
+            # see http://boostorg.github.io/python/doc/html/building/installing_boost_python_on_your_.html
+            bjamoptions += " --with-python"
+
+        if self.cfg['boost_mpi']:
+            self.log.info("Building boost_mpi library")
+            self.build_boost_variant(bjamoptions + " --user-config=user-config.jam --with-mpi", paracmd)
+
+        if self.cfg['boost_multi_thread']:
+            self.log.info("Building boost with multi threading")
+            self.build_boost_variant(bjamoptions + " threading=multi --layout=tagged", paracmd)
+
+        # if both boost_mpi and boost_multi_thread are enabled, build boost mpi with multi-thread support
+        if self.cfg['boost_multi_thread'] and self.cfg['boost_mpi']:
+            self.log.info("Building boost_mpi with multi threading")
+            extra_bjamoptions = " --user-config=user-config.jam --with-mpi threading=multi --layout=tagged"
+            self.build_boost_variant(bjamoptions + extra_bjamoptions, paracmd)
+
+        # install remainder of boost libraries
+        self.log.info("Installing boost libraries")
+
+        cmd = "%s ./bjam %s install %s %s" % (self.cfg['preinstallopts'], bjamoptions, paracmd, self.cfg['installopts'])
+        run_cmd(cmd, log_all=True, simple=True)
+
+    def install_step(self):
+        """Install Boost by copying file to install dir."""
+
+        self.log.info("Copying %s to installation dir %s" % (self.objdir, self.installdir))
+        copy(glob.glob(os.path.join(self.objdir, '*')), self.installdir)
+
+    def sanity_check_step(self):
+        """Custom sanity check for Boost."""
+        shlib_ext = get_shared_lib_ext()
+
+        custom_paths = {
+            'files': [],
+            'dirs': ['include/boost']
+        }
+        if not self.cfg['only_python_bindings']:
+            custom_paths['files'].append(os.path.join('lib', 'libboost_system.%s' % shlib_ext))
+
+        if self.cfg['boost_mpi']:
+            custom_paths['files'].append(os.path.join('lib', 'libboost_mpi.%s' % shlib_ext))
+
+        if get_software_root('Python'):
+            pymajorver = get_software_version('Python').split('.')[0]
+            pyminorver = get_software_version('Python').split('.')[1]
+            if LooseVersion(self.version) >= LooseVersion("1.67.0"):
+                suffix = '%s%s' % (pymajorver, pyminorver)
+            elif int(pymajorver) >= 3:
+                suffix = pymajorver
+            else:
+                suffix = ''
+            custom_paths['files'].append(os.path.join('lib', 'libboost_python%s.%s' % (suffix, shlib_ext)))
+
+        if self.cfg['boost_multi_thread']:
+            custom_paths['files'].append(os.path.join('lib', 'libboost_thread-mt.%s' % shlib_ext))
+
+        if self.cfg['boost_mpi'] and self.cfg['boost_multi_thread']:
+            custom_paths['files'].append(os.path.join('lib', 'libboost_mpi-mt.%s' % shlib_ext))
+
+        super(EB_Boost, self).sanity_check_step(custom_paths=custom_paths)
+
+    def make_module_extra(self):
+        """Set up a BOOST_ROOT environment variable to e.g. ease Boost handling by cmake"""
+        txt = super(EB_Boost, self).make_module_extra()
+        if not self.cfg['only_python_bindings']:
+            txt += self.module_generator.set_environment('BOOST_ROOT', self.installdir)
+        return txt
diff --git a/Custom_EasyBlocks/2019a/elpa.py b/Custom_EasyBlocks/2019a/elpa.py
index f66278734..c78656e91 100644
--- a/Custom_EasyBlocks/2019a/elpa.py
+++ b/Custom_EasyBlocks/2019a/elpa.py
@@ -28,6 +28,7 @@ EasyBuild support for building and installing ELPA, implemented as an easyblock
 
 @author: Micael Oliveira (MPSD-Hamburg)
 """
+#from easybuild.tools.utilities import nub
 from vsc.utils.missing import nub
 
 from easybuild.easyblocks.generic.configuremake import ConfigureMake
diff --git a/Custom_EasyBlocks/2019a/generic/versionindependentpythonpackage.py b/Custom_EasyBlocks/2019a/generic/versionindependentpythonpackage.py
new file mode 100644
index 000000000..6c4157113
--- /dev/null
+++ b/Custom_EasyBlocks/2019a/generic/versionindependentpythonpackage.py
@@ -0,0 +1,101 @@
+##
+# Copyright 2013-2019 Ghent University
+#
+# This file is part of EasyBuild,
+# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en),
+# with support of Ghent University (http://ugent.be/hpc),
+# the Flemish Supercomputer Centre (VSC) (https://www.vscentrum.be),
+# Flemish Research Foundation (FWO) (http://www.fwo.be/en)
+# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en).
+#
+# https://github.com/easybuilders/easybuild
+#
+# EasyBuild is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation v2.
+#
+# EasyBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with EasyBuild.  If not, see <http://www.gnu.org/licenses/>.
+##
+"""
+EasyBuild support for building and installing a Pythonpackage independend of a python version as an easyblock.
+
+Python installs libraries by defailt in site-packages/python-xxx/
+But packages that are not dependend on the python version can be installed in a different prefix, e.g. lib
+as long as we add this folder to the pythonpath.
+
+@author: Kenneth Hoste, Jens Timmerman (Ghent University)
+"""
+import os
+import re
+
+import easybuild.tools.environment as env
+from easybuild.easyblocks.generic.pythonpackage import PythonPackage
+from easybuild.tools.build_log import EasyBuildError
+from easybuild.tools.run import run_cmd
+
+
+class VersionIndependentPythonPackage(PythonPackage):
+    """Support for building/installing python packages without requiring a specific python package."""
+
+    def build_step(self):
+        """No build procedure."""
+        pass
+
+    def set_pylibdirs(self):
+        """Set pylibdir."""
+        super(VersionIndependentPythonPackage, self).set_pylibdirs()    
+        self.pylibdir = 'lib'
+        self.all_pylibdirs = ['lib']
+
+    def install_step(self):
+        """Custom install procedure to skip selection of python package versions."""
+        full_pylibdir = os.path.join(self.installdir, self.pylibdir)
+
+        env.setvar('PYTHONPATH', '%s:%s' % (full_pylibdir, os.getenv('PYTHONPATH')))
+
+        try:
+            os.mkdir(full_pylibdir)
+        except OSError as err:
+            # this will raise an error and not return
+            raise EasyBuildError("Failed to install: %s", err)
+
+        if self.use_setup_py:
+            extra_installopts = [
+                '--install-lib=%s' % full_pylibdir,
+                '--single-version-externally-managed',
+                '--record %s' % os.path.join(self.builddir, 'record'),
+                '--no-compile',
+            ]
+            self.cfg.update('installopts', ' '.join(extra_installopts))
+        else:
+            # using easy_install or pip always results in installation that is specific to Python version
+            eb_name = self.__class__.__name__
+            raise EasyBuildError("%s easyblock is not compatible with using easy_install or pip", eb_name)
+
+        cmd = self.compose_install_command(self.installdir)
+        run_cmd(cmd, log_all=True, simple=True, log_output=True)
+
+        # setuptools stubbornly replaces the shebang line in scripts with
+        # the full path to the Python interpreter used to install;
+        # we change it (back) to '#!/usr/bin/env python' here
+        shebang_re = re.compile("^#!/.*python")
+        bindir = os.path.join(self.installdir, 'bin')
+        if os.path.exists(bindir):
+            for script in os.listdir(bindir):
+                script = os.path.join(bindir, script)
+                if os.path.isfile(script):
+                    try:
+                        txt = open(script, 'r').read()
+                        if shebang_re.search(txt):
+                            new_shebang = "#!/usr/bin/env python"
+                            self.log.debug("Patching shebang header line in %s to '%s'" % (script, new_shebang))
+                            txt = shebang_re.sub(new_shebang, txt)
+                            open(script, 'w').write(txt)
+                    except IOError as err:
+                        raise EasyBuildError("Failed to patch shebang header line in %s: %s", script, err)
diff --git a/Custom_EasyBlocks/2019a/pgi.py b/Custom_EasyBlocks/2019a/pgi.py
index 063a6ee88..e817c74dc 100644
--- a/Custom_EasyBlocks/2019a/pgi.py
+++ b/Custom_EasyBlocks/2019a/pgi.py
@@ -162,12 +162,12 @@ class EB_PGI(PackedBinary):
             siterc_path = os.path.join(self.installdir, subdir, 'bin', 'siterc')
             # adding LIBRARY_PATH has the side effect of adding llvm to nollvm siterc files and viceversa
             # this is done dynamically, so we can't account for it in all cases. Simply do it for the default
-            isdefault = False
-            if ((LooseVersion(self.version) > LooseVersion('18') and LooseVersion(self.version) < LooseVersion('19') and
-                subdir == 'linux86-64-nollvm') or
-                (LooseVersion(self.version) > LooseVersion('19') and subdir == 'linux86-64-llvm')):
-                isdefault = True
-            if isdefault:
+            #isdefault = False
+            #if ((LooseVersion(self.version) > LooseVersion('18') and LooseVersion(self.version) < LooseVersion('19') and
+            #    subdir == 'linux86-64-nollvm') or
+            #    (LooseVersion(self.version) > LooseVersion('19') and subdir == 'linux86-64-llvm')):
+            #    isdefault = True
+            if subdir == os.path.join('linux86-64', self.version):
                 write_file(siterc_path, SITERC_LIBRARY_PATH, append=True)
                 self.log.info("Appended instructions to pick up $LIBRARY_PATH to siterc file at %s: %s",
                               siterc_path, SITERC_LIBRARY_PATH)
diff --git a/Custom_EasyBlocks/2019a/psmpi.py b/Custom_EasyBlocks/2019a/psmpi.py
index 2f228166d..4ba9b7834 100644
--- a/Custom_EasyBlocks/2019a/psmpi.py
+++ b/Custom_EasyBlocks/2019a/psmpi.py
@@ -213,8 +213,7 @@ class EB_psmpi(EB_MPICH):
         comp_opts = {
             toolchain.GCC: 'gcc',
             toolchain.INTELCOMP: 'intel',
-            # TODO: Include PGI as soon as it is available as toolchain
-            #toolchain.PGI: 'pgi',
+            toolchain.PGI: 'pgi',
         }
 
         # ParaStationMPI defines its environment through confsets. So these should be unset
@@ -222,17 +221,18 @@ class EB_psmpi(EB_MPICH):
         env.unset_env_vars(env_vars)
         self.log.info("Unsetting the following variables: " + ' '.join(env_vars))
 
-        # Set confset
+        # Enable CUDA
         if self.cfg['cuda']:
             self.log.info("Enabling CUDA-Awareness...")
-            self.cfg.update('configopts', ' --with-confset=cuda')
+            self.cfg.update('configopts', ' --with-cuda')
+
+        # Set confset
+        comp_fam = self.toolchain.comp_family()
+        if comp_fam in comp_opts:
+            self.cfg.update('configopts', ' --with-confset=%s' % comp_opts[comp_fam])
         else:
-            comp_fam = self.toolchain.comp_family()
-            if comp_fam in comp_opts:
-                self.cfg.update('configopts', ' --with-confset=%s' % comp_opts[comp_fam])
-            else:
-                raise EasyBuildError("Compiler %s not supported. Valid options are: %s",
-                                     comp_fam, ', '.join(comp_opts.keys()))
+            raise EasyBuildError("Compiler %s not supported. Valid options are: %s",
+                                 comp_fam, ', '.join(comp_opts.keys()))
 
         # Enable threading, if necessary
         if self.cfg['threaded']:
diff --git a/Custom_MNS/2019a/custom_hierarchical_mns.py b/Custom_MNS/2019a/custom_hierarchical_mns.py
index 37cf6e68e..935f72ff1 100755
--- a/Custom_MNS/2019a/custom_hierarchical_mns.py
+++ b/Custom_MNS/2019a/custom_hierarchical_mns.py
@@ -32,6 +32,7 @@ Implementation of an example hierarchical module naming scheme.
 import os
 import re
 from vsc.utils import fancylogger
+#from easybuild.base import fancylogger
 
 from easybuild.tools.build_log import EasyBuildError
 from easybuild.tools.module_naming_scheme.hierarchical_mns import HierarchicalMNS
diff --git a/Custom_MNS/2019a/flexible_custom_hierarchical_mns.py b/Custom_MNS/2019a/flexible_custom_hierarchical_mns.py
index d42a23ecf..39b86e38a 100755
--- a/Custom_MNS/2019a/flexible_custom_hierarchical_mns.py
+++ b/Custom_MNS/2019a/flexible_custom_hierarchical_mns.py
@@ -10,6 +10,7 @@ Implementation of a hierarchical module naming scheme, with added flexibility
 import os
 import re
 from vsc.utils import fancylogger
+#from easybuild.base import fancylogger
 
 from easybuild.tools.build_log import EasyBuildError
 from easybuild.tools.module_naming_scheme.hierarchical_mns import HierarchicalMNS
@@ -18,6 +19,7 @@ from easybuild.tools.module_naming_scheme.toolchain import det_toolchain_compile
 CORE = 'Core'
 COMPILER = 'Compiler'
 MPI = 'MPI'
+MPI_SETTINGS = 'MPI_settings'
 
 MODULECLASS_COMPILER = 'compiler'
 MODULECLASS_MPI = 'mpi'
@@ -50,6 +52,9 @@ mpi_relevant_versions = {
     'OpenMPI': 2,
 }
 
+# MPIs with settings modules
+mpi_with_settings = ['psmpi', 'impi', 'MVAPICH2']
+
 class FlexibleCustomHierarchicalMNS(HierarchicalMNS):
     """Class implementing an example hierarchical module naming scheme."""
     def is_short_modname_for(self, short_modname, name):
@@ -65,6 +70,8 @@ class FlexibleCustomHierarchicalMNS(HierarchicalMNS):
             modname_regex = re.compile('^%s/\S+$' % re.escape('ParaStationMPI'))
         elif name == 'impi':
             modname_regex = re.compile('^%s/\S+$' % re.escape('IntelMPI'))
+        elif name in ['-'.join([x, 'settings']) for x in mpi_with_settings]:
+            modname_regex = re.compile('^%s/\S+$' % re.escape('mpi-settings'))
         else:
             modname_regex = re.compile('^%s/\S+$' % re.escape(name))
         res = bool(modname_regex.match(short_modname))
@@ -123,6 +130,10 @@ class FlexibleCustomHierarchicalMNS(HierarchicalMNS):
         if tc_comp_info is None:
             # no compiler in toolchain, dummy toolchain => Core module
             subdir = CORE
+            # except if the module is a MPI settings module
+            stripped_name = re.sub('-settings$', '', ec['name'])
+            if stripped_name in mpi_with_settings:
+                subdir = os.path.join(MPI_SETTINGS, stripped_name, ec['version'])
         else:
             tc_comp_name, tc_comp_ver = self._find_relevant_compiler_info(tc_comp_info)
             tc_mpi = det_toolchain_mpi(ec)
@@ -140,6 +151,18 @@ class FlexibleCustomHierarchicalMNS(HierarchicalMNS):
 
         return subdir
 
+    def det_short_module_name(self, ec):
+        """
+        Determine short module name, i.e. the name under which modules will be exposed to users.
+        Examples: GCC/4.8.3, OpenMPI/1.6.5, OpenBLAS/0.2.9, HPL/2.1, Python/2.7.5
+                  UCX-UD (for MPI settings)
+        """
+        stripped_name = re.sub('-settings$', '', ec['name'])
+        if stripped_name in mpi_with_settings and '-settings' in ec['name']:
+            return os.path.join('mpi-settings', ec['versionsuffix'])
+        else:
+            return super(FlexibleCustomHierarchicalMNS, self).det_short_module_name(ec)
+
     def det_modpath_extensions(self, ec):
         """
         Determine module path extensions, if any.
@@ -199,4 +222,7 @@ class FlexibleCustomHierarchicalMNS(HierarchicalMNS):
                 mpi_name, mpi_ver = self._find_relevant_mpi_info(ec)
                 paths.append(os.path.join(MPI, tc_comp_name, tc_comp_ver, mpi_name, mpi_ver))
 
+                if ec['name'] in mpi_with_settings:
+                    paths.append(os.path.join(MPI_SETTINGS, mpi_name, mpi_ver))
+
         return paths
diff --git a/Golden_Repo/2019a/b/Boost/Boost-1.69.0-gmvapich2c-2019a-GDR-Python-3.6.8.eb b/Golden_Repo/2019a/b/Boost/Boost-1.69.0-gmvapich2c-2019a-GDR-Python-3.6.8.eb
new file mode 100644
index 000000000..62bbe596e
--- /dev/null
+++ b/Golden_Repo/2019a/b/Boost/Boost-1.69.0-gmvapich2c-2019a-GDR-Python-3.6.8.eb
@@ -0,0 +1,30 @@
+name = 'Boost'
+version = '1.69.0'
+versionsuffix = '-Python-%(pyver)s'
+
+homepage = 'http://www.boost.org/'
+description = """Boost provides free peer-reviewed portable C++ source libraries."""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'gmvapich2c', 'version': '2019a-GDR'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))]
+
+patches = [
+    'Boost-1.65.1_fix-Python3.patch'
+]
+
+dependencies = [
+    ('bzip2', '1.0.6'),
+    ('zlib', '1.2.11'),
+    ('Python', '3.6.8'),
+    ('ICU', '64.1'),
+]
+
+# also build boost_mpi
+boost_mpi = True
+
+moduleclass = 'devel'
diff --git a/Golden_Repo/2019a/c/CUDA/CUDA-10.1.105.eb b/Golden_Repo/2019a/c/CUDA/CUDA-10.1.105.eb
index 5df0e6c30..e3fdd0523 100644
--- a/Golden_Repo/2019a/c/CUDA/CUDA-10.1.105.eb
+++ b/Golden_Repo/2019a/c/CUDA/CUDA-10.1.105.eb
@@ -26,7 +26,7 @@ sources = [
 host_compilers = [ 'g++', 'pgc++' ]
 
 dependencies = [
-    ('nvidia', '418.87.00', '', True),
+    ('nvidia', 'driver', '', True),
 ]
 
 installopts = '--samplespath=%(installdir)s --samples'
diff --git a/Golden_Repo/2019a/e/EasyBuild/EasyBuild-3.9.4.eb b/Golden_Repo/2019a/e/EasyBuild/EasyBuild-3.9.4.eb
new file mode 100644
index 000000000..a5005270c
--- /dev/null
+++ b/Golden_Repo/2019a/e/EasyBuild/EasyBuild-3.9.4.eb
@@ -0,0 +1,45 @@
+easyblock = 'EB_EasyBuildMeta'
+
+name = 'EasyBuild'
+version = '3.9.4'
+
+homepage = 'https://easybuilders.github.io/easybuild'
+description = """EasyBuild is a software build and installation framework
+ written in Python that allows you to install software in a structured,
+ repeatable and robust way."""
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = [
+    # vsc-install
+    'https://files.pythonhosted.org/packages/18/59/3274a58af6af84a87f7655735b452c06c769586ee73954f5ee15d303aa29/',
+    # vsc-base
+    'https://files.pythonhosted.org/packages/48/aa/f05d350c358338d0e843835660e3993cc5eb28401f32c0c5b8bc9a9458d5/',
+    # easybuild-framework
+    'https://files.pythonhosted.org/packages/65/cd/90ba2c8619ccad8385a3bddf503a7fb8115e418accf1109e44b5db89bd63/',
+    # easybuild-easyblocks
+    'https://files.pythonhosted.org/packages/2b/db/2393a9555c69fcee3e206ce7fceeaf41a0e90695005b8e7c2146e77d409c/',
+    # easybuild-easyconfigs
+    'https://files.pythonhosted.org/packages/a3/62/1d26bd864009900d142ece57cb4b46ea3676b86adec72479c7d2da41db8a/'
+]
+sources = [
+    'vsc-install-0.11.3.tar.gz',
+    'vsc-base-2.8.4.tar.gz',
+    'easybuild-framework-%(version)s.tar.gz',
+    'easybuild-easyblocks-%(version)s.tar.gz',
+    'easybuild-easyconfigs-%(version)s.tar.gz',
+]
+checksums = [
+    '8b102ba585863769d974ad117764039ac3cea21372a3baa5cdb6b93166673ad6',  # vsc-install-0.11.3.tar.gz
+    'a6d3ab52c9dec938d98e53860dce4aba79ca8ea4e81f6e07bf2c3787e764bc3e',  # vsc-base-2.8.4.tar.gz
+    '3a924da6cc3c50087f8c24e5d5810236750bdd4812e59866827965f19b01c8de',  # easybuild-framework-3.9.4.tar.gz
+    '853d7c063c361027661bed63d1a2918323ee5975a3b0b3f6c626d351b06c84e6',  # easybuild-easyblocks-3.9.4.tar.gz
+    '24a6952810e3354ff9aadb898120b3a942e2915365bf0f684dfe9a85314ba271',  # easybuild-easyconfigs-3.9.4.tar.gz
+]
+
+# order matters a lot, to avoid having dependencies auto-resolved (--no-deps easy_install option doesn't work?)
+# EasyBuild is a (set of) Python packages, so it depends on Python
+# usually, we want to use the system Python, so no actual Python dependency is listed
+allow_system_deps = [('Python', SYS_PYTHON_VERSION)]
+
+moduleclass = 'tools'
diff --git a/Golden_Repo/2019a/i/icc/icc-2019.5.281-GCC-8.3.0.eb b/Golden_Repo/2019a/i/icc/icc-2019.5.281-GCC-8.3.0.eb
new file mode 100644
index 000000000..fe24d0867
--- /dev/null
+++ b/Golden_Repo/2019a/i/icc/icc-2019.5.281-GCC-8.3.0.eb
@@ -0,0 +1,38 @@
+# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild
+
+name = 'icc'
+version = '2019.5.281'
+
+homepage = 'http://software.intel.com/en-us/intel-compilers/'
+description = """C and C++ compiler from Intel
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition_for_cpp.tgz']
+#sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_cpp.tgz']
+
+gccver = '8.3.0'
+binutilsver = '2.32'
+versionsuffix = '-GCC-%s' % gccver
+
+dependencies = [
+    ('GCCcore', gccver),
+    ('binutils', binutilsver, '', ('GCCcore', gccver)),
+]
+
+# list of regex for components to install
+# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources
+# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide
+components = ['intel-comp', 'intel-ccomp', 'intel-icc', 'intel-openmp', 'intel-ipsc?_']
+
+dontcreateinstalldir = 'True'
+
+# disable data collection
+modextravars = {
+    'INTEL_DISABLE_ISIP': '1'
+}
+
+moduleclass = 'compiler'
diff --git a/Golden_Repo/2019a/i/iccifort/iccifort-2019.5.281-GCC-8.3.0.eb b/Golden_Repo/2019a/i/iccifort/iccifort-2019.5.281-GCC-8.3.0.eb
new file mode 100644
index 000000000..12f5371d6
--- /dev/null
+++ b/Golden_Repo/2019a/i/iccifort/iccifort-2019.5.281-GCC-8.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = "Bundle"
+
+name = 'iccifort'
+version = '2019.5.281'
+versionsuffix = '-GCC-8.3.0'
+
+homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/'
+description = """Intel Cluster Toolkit Compiler Edition provides Intel C,C++ and fortran compilers, Intel MPI and Intel MKL
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+dependencies = [
+    ('icc', version, versionsuffix),
+    ('ifort', version, versionsuffix),
+]
+
+# We have a custom naming scheme that allows us to use a more descriptive module name
+modaltsoftname = 'Intel'
+
+# We use a HMNS, so let's enforce a unique compiler
+modluafooter = 'family("compiler")'
+
+# Always do a recursive unload on compilers
+recursive_module_unload = True
+
+moduleclass = 'compiler'
diff --git a/Golden_Repo/2019a/i/ifort/ifort-2019.5.281-GCC-8.3.0.eb b/Golden_Repo/2019a/i/ifort/ifort-2019.5.281-GCC-8.3.0.eb
new file mode 100644
index 000000000..943172a93
--- /dev/null
+++ b/Golden_Repo/2019a/i/ifort/ifort-2019.5.281-GCC-8.3.0.eb
@@ -0,0 +1,36 @@
+name = 'ifort'
+version = '2019.5.281'
+
+homepage = 'http://software.intel.com/en-us/intel-compilers/'
+description = """Fortran compiler from Intel
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+#sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_fortran.tgz']
+sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition_for_fortran.tgz']
+
+gccver = '8.3.0'
+binutilsver = '2.32'
+versionsuffix = '-GCC-%s' % gccver
+
+dependencies = [
+    ('GCCcore', gccver),
+    ('binutils', binutilsver, '', ('GCCcore', gccver)),
+]
+
+# list of regex for components to install
+# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources
+# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide
+components = ['intel-comp', 'intel-fcomp', 'intel-ifort', 'intel-openmp', 'intel-ipsf?_']
+
+dontcreateinstalldir = 'True'
+
+# disable data collection
+modextravars = {
+    'INTEL_DISABLE_ISIP': '1'
+}
+
+moduleclass = 'compiler'
diff --git a/Golden_Repo/2019a/i/impi-settings/impi-settings-2019-UCX-UD.eb b/Golden_Repo/2019a/i/impi-settings/impi-settings-2019-UCX-UD.eb
new file mode 100644
index 000000000..ebdd41c02
--- /dev/null
+++ b/Golden_Repo/2019a/i/impi-settings/impi-settings-2019-UCX-UD.eb
@@ -0,0 +1,25 @@
+easyblock = 'SystemBundle'
+
+name = 'impi-settings'
+version = '2019'
+versionsuffix = 'UCX-UD'
+
+homepage = ''
+description = """This is a module to load the IntelMPI configuration with UCX and UD as TL"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+modextravars = {
+    'UCX_TLS': 'ud_x,sm,self',
+    'I_MPI_PMI_VALUE_LENGTH_MAX': '900',
+    # Needed for PSM and harmless for InfiniBand. For ParaStation it is set on the pscom module
+    'HFI_NO_CPUAFFINITY': 'YES',
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/i/impi-settings/impi-settings-2019-default.eb b/Golden_Repo/2019a/i/impi-settings/impi-settings-2019-default.eb
new file mode 100644
index 000000000..62fe65bd8
--- /dev/null
+++ b/Golden_Repo/2019a/i/impi-settings/impi-settings-2019-default.eb
@@ -0,0 +1,25 @@
+easyblock = 'SystemBundle'
+
+name = 'impi-settings'
+version = '2019'
+versionsuffix = 'default'
+
+homepage = ''
+description = """This is a module to load the default IntelMPI configuration"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+modextravars = {
+    'UCX_TLS': 'dc_x,sm,self',
+    'I_MPI_PMI_VALUE_LENGTH_MAX': '900',
+    # Needed for PSM and harmless for InfiniBand. For ParaStation it is set on the pscom module
+    'HFI_NO_CPUAFFINITY': 'YES',
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/i/impi-settings/impi-settings-2019-large-job-hybrid.eb b/Golden_Repo/2019a/i/impi-settings/impi-settings-2019-large-job-hybrid.eb
new file mode 100644
index 000000000..d1ec28953
--- /dev/null
+++ b/Golden_Repo/2019a/i/impi-settings/impi-settings-2019-large-job-hybrid.eb
@@ -0,0 +1,25 @@
+easyblock = 'SystemBundle'
+
+name = 'impi-settings'
+version = '2019'
+versionsuffix = 'large-job-hybrid'
+
+homepage = ''
+description = """This is a module to load the IntelMPI configuration for large scale hybrid jobs"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+modextravars = {
+    'UCX_TLS': 'dc_x,sm,self',
+    'I_MPI_PMI_VALUE_LENGTH_MAX': '900',
+    # Needed for PSM and harmless for InfiniBand. For ParaStation it is set on the pscom module
+    'HFI_NO_CPUAFFINITY': 'YES',
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/i/impi-settings/impi-settings-2019-large-job-mpi.eb b/Golden_Repo/2019a/i/impi-settings/impi-settings-2019-large-job-mpi.eb
new file mode 100644
index 000000000..03fb0c375
--- /dev/null
+++ b/Golden_Repo/2019a/i/impi-settings/impi-settings-2019-large-job-mpi.eb
@@ -0,0 +1,25 @@
+easyblock = 'SystemBundle'
+
+name = 'impi-settings'
+version = '2019'
+versionsuffix = 'large-job-mpi'
+
+homepage = ''
+description = """This is a module to load the IntelMPI configuration for large scale MPI jobs"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+modextravars = {
+    'UCX_TLS': 'dc_x,sm,self',
+    'I_MPI_PMI_VALUE_LENGTH_MAX': '900',
+    # Needed for PSM and harmless for InfiniBand. For ParaStation it is set on the pscom module
+    'HFI_NO_CPUAFFINITY': 'YES',
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/i/impi/impi-2018.5.288-iccifort-2019.3.199-GCC-8.3.0.eb b/Golden_Repo/2019a/i/impi/impi-2018.5.288-iccifort-2019.3.199-GCC-8.3.0.eb
index 78c5ab20d..d55626cbf 100644
--- a/Golden_Repo/2019a/i/impi/impi-2018.5.288-iccifort-2019.3.199-GCC-8.3.0.eb
+++ b/Golden_Repo/2019a/i/impi/impi-2018.5.288-iccifort-2019.3.199-GCC-8.3.0.eb
@@ -47,17 +47,17 @@ modextravars = {
     'I_MPI_FABRICS': 'shm:ofa',
 }
 
-modloadmsg = 'WARNING: Intel MPI version 2018 (all minor releases) and 2019 have unresolved, known issues\n'
-modloadmsg += 'affecting collective operations. Since not all applications are impaired, JSC has\n'
-modloadmsg += 'decided not to fully retract the MPI version 2018 (other than version 2019).\n'
-modloadmsg += 'However, we warn users about potential problems with hanging applications due to stalls\n'
-modloadmsg += 'or very slow progress in collectives.\n'
-modloadmsg += 'In particular affected are:\n'
-modloadmsg += '    * MPI_Scatter/MPI_Scatterv\n'
-modloadmsg += '    * Collectives executed with 3000+ tasks\n'
-modloadmsg += 'Larger jobs are more likely affected than smaller ones.\n'
-modloadmsg += 'Please consider ParaStation MPI as an alternative option, when experiencing problems\n'
-modloadmsg += 'with this Intel MPI version. Irrespectively, please contact sc@fz-juelich.de and report\n'
-modloadmsg += 'your problem.'
+#modloadmsg = 'WARNING: Intel MPI version 2018 (all minor releases) and 2019 have unresolved, known issues\n'
+#modloadmsg += 'affecting collective operations. Since not all applications are impaired, JSC has\n'
+#modloadmsg += 'decided not to fully retract the MPI version 2018 (other than version 2019).\n'
+#modloadmsg += 'However, we warn users about potential problems with hanging applications due to stalls\n'
+#modloadmsg += 'or very slow progress in collectives.\n'
+#modloadmsg += 'In particular affected are:\n'
+#modloadmsg += '    * MPI_Scatter/MPI_Scatterv\n'
+#modloadmsg += '    * Collectives executed with 3000+ tasks\n'
+#modloadmsg += 'Larger jobs are more likely affected than smaller ones.\n'
+#modloadmsg += 'Please consider ParaStation MPI as an alternative option, when experiencing problems\n'
+#modloadmsg += 'with this Intel MPI version. Irrespectively, please contact sc@fz-juelich.de and report\n'
+#modloadmsg += 'your problem.'
 
 moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/i/impi/impi-2019.3.199-iccifort-2019.3.199-GCC-8.3.0.eb b/Golden_Repo/2019a/i/impi/impi-2019.3.199-iccifort-2019.3.199-GCC-8.3.0.eb
index 73f48cf57..5289a6d25 100644
--- a/Golden_Repo/2019a/i/impi/impi-2019.3.199-iccifort-2019.3.199-GCC-8.3.0.eb
+++ b/Golden_Repo/2019a/i/impi/impi-2019.3.199-iccifort-2019.3.199-GCC-8.3.0.eb
@@ -31,23 +31,22 @@ postinstallcmds = [
 
 # use a more explicit module name to help our naming scheme
 modaltsoftname = 'IntelMPI'
-# Add a family for our naming scheme
-modluafooter = 'family("mpi")'
 dontcreateinstalldir = 'True'
 # set up all the mpi commands to work as expected
 set_mpi_wrappers_all = 'True'
 
 modextravars = {
-#    'I_MPI_OFA_TRANSLATION_CACHE': '0',
-#    'I_MPI_DAPL_TRANSLATION_CACHE': '0',
-    # Needed for PSM and harmless for InfiniBand. For ParaStation it is set on the pscom module
-    'HFI_NO_CPUAFFINITY': 'YES',
     # The default algorithms hang for large core counts
     'I_MPI_ADJUST_GATHER': '1',
     'I_MPI_ADJUST_GATHERV': '3',
 }
 
-#modloadmsg =  'This version of Intel MPI have serious issues. Particularly with certain collective functions at large\n'
-#modloadmsg += 'core counts. Please load version 2018.4 instead'
+# Add a family for our naming scheme
+modluafooter = '''
+family("mpi")
+if not ( isloaded("mpi-settings/default") ) then
+    load("mpi-settings/default")
+end
+'''
 
 moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/i/impi/impi-2019.6.154-iccifort-2019.5.281-GCC-8.3.0.eb b/Golden_Repo/2019a/i/impi/impi-2019.6.154-iccifort-2019.5.281-GCC-8.3.0.eb
new file mode 100644
index 000000000..5f42a27a4
--- /dev/null
+++ b/Golden_Repo/2019a/i/impi/impi-2019.6.154-iccifort-2019.5.281-GCC-8.3.0.eb
@@ -0,0 +1,48 @@
+name = 'impi'
+version = '2019.6.154'
+
+homepage = 'http://software.intel.com/en-us/intel-mpi-library/'
+description = """The Intel(R) MPI Library for Linux* OS is a multi-fabric message
+ passing library based on ANL MPICH2 and OSU MVAPICH2. The Intel MPI Library for
+ Linux OS implements the Message Passing Interface, version 2 (MPI-2) specification.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'version': '2019.5.281-GCC-8.3.0', 'name': 'iccifort'}
+
+sources = ['l_mpi_%(version)s.tgz']
+
+dependencies = [
+    ('UCX', '1.6.1')
+]
+
+# use a more explicit module name to help our naming scheme
+modaltsoftname = 'IntelMPI'
+# Add a family for our naming scheme
+modluafooter = 'family("mpi")'
+dontcreateinstalldir = 'True'
+# set up all the mpi commands to work as expected
+set_mpi_wrappers_all = 'True'
+
+postinstallcmds = [
+    "ln -s %(installdir)s/intel64/lib/release/libmpi.so  %(installdir)s/intel64/lib/",
+    "ln -s %(installdir)s/intel64/lib  %(installdir)s",
+    "ln -s %(installdir)s/intel64/include  %(installdir)s",
+    "rm -Rf %(installdir)s/bin",
+    "ln -s %(installdir)s/intel64/bin  %(installdir)s",
+]
+
+modextrapaths = {
+    'CLASSPATH': 'intel64/lib/mpi.jar',
+}
+
+# Add a family for our naming scheme
+modluafooter = '''
+family("mpi")
+if not ( isloaded("mpi-settings/default") ) then
+    load("mpi-settings/default")
+end
+'''
+
+moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/jusuf_overlay/c/CDO/CDO-1.9.5-ipsmpi-2019a.eb b/Golden_Repo/2019a/jusuf_overlay/c/CDO/CDO-1.9.5-ipsmpi-2019a.eb
new file mode 100644
index 000000000..efc2e86ab
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/c/CDO/CDO-1.9.5-ipsmpi-2019a.eb
@@ -0,0 +1,34 @@
+easyblock = 'ConfigureMake'
+
+name = 'CDO'
+version = '1.9.5'
+
+homepage = 'https://code.zmaw.de/projects/cdo'
+description = """CDO is a collection of command line Operators to manipulate and analyse Climate and NWP model Data."""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'ipsmpi', 'version': '2019a'}
+toolchainopts = {'opt': True, 'pic': True, 'usempi': True}
+
+source_urls = ['https://code.mpimet.mpg.de/attachments/19299/']
+sources = [SOURCELOWER_TAR_GZ]
+
+dependencies = [
+    ('Szip', '2.1.1'),
+    ('HDF5', '1.10.5'),
+    ('netCDF', '4.6.3'),
+    ('YAXT', '0.6.0'),
+    ('ecCodes', '2.12.0')
+]
+
+preconfigopts = 'export CFLAGS="$CFLAGS -lhdf5" && '
+
+configopts = "--with-hdf5=$EBROOTHDF5 --with-netcdf=$EBROOTNETCDF --with-eccodes=yes --with-szlib=yes"
+
+sanity_check_paths = {
+    'files': ["bin/cdo"],
+    'dirs': [],
+}
+
+moduleclass = 'data'
diff --git a/Golden_Repo/2019a/jusuf_overlay/g/GSL/GSL-2.5-iccifort-2019.5.281-GCC-8.3.0.eb b/Golden_Repo/2019a/jusuf_overlay/g/GSL/GSL-2.5-iccifort-2019.5.281-GCC-8.3.0.eb
new file mode 100644
index 000000000..243967a19
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/g/GSL/GSL-2.5-iccifort-2019.5.281-GCC-8.3.0.eb
@@ -0,0 +1,22 @@
+easyblock = 'ConfigureMake'
+
+name = 'GSL'
+version = '2.5'
+
+homepage = 'http://www.gnu.org/software/gsl/'
+description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers.
+ The library provides a wide range of mathematical routines such as random number generators, special functions
+ and least-squares fitting.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'iccifort', 'version': '2019.5.281-GCC-8.3.0'}
+toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+
+configopts = "--with-pic"
+
+moduleclass = 'numlib'
diff --git a/Golden_Repo/2019a/jusuf_overlay/i/iimpi/iimpi-2019a.eb b/Golden_Repo/2019a/jusuf_overlay/i/iimpi/iimpi-2019a.eb
new file mode 100644
index 000000000..2a738cfb2
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/i/iimpi/iimpi-2019a.eb
@@ -0,0 +1,24 @@
+easyblock = "Toolchain"
+
+name = 'iimpi'
+version = '2019a'
+
+homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/'
+description = """Intel C/C++ and Fortran compilers, alongside Intel MPI.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+compver = '2019.5.281'
+mpiver = '2019.6.154'
+gccsuffix = '-GCC-8.3.0'
+dependencies = [
+    ('iccifort', '%s%s' % (compver, gccsuffix)),
+    ('icc', compver, gccsuffix),
+    ('ifort', compver, gccsuffix),
+    ('impi', '%s' % mpiver, '', ('iccifort', '%s%s' % (compver, gccsuffix))),
+]
+
+moduleclass = 'toolchain'
diff --git a/Golden_Repo/2019a/jusuf_overlay/i/imkl/imkl-2019.5.281-iimpi-2019a.eb b/Golden_Repo/2019a/jusuf_overlay/i/imkl/imkl-2019.5.281-iimpi-2019a.eb
new file mode 100644
index 000000000..5e2643518
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/i/imkl/imkl-2019.5.281-iimpi-2019a.eb
@@ -0,0 +1,32 @@
+name = 'imkl'
+version = '2019.5.281'
+
+homepage = 'http://software.intel.com/en-us/intel-mkl/'
+description = """Intel Math Kernel Library is a library of highly optimized,
+ extensively threaded math routines for science, engineering, and financial
+ applications that require maximum performance. Core math functions include
+ BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'version': '2019a', 'name': 'iimpi'}
+
+sources = ['l_mkl_%(version)s.tgz']
+
+dontcreateinstalldir = 'True'
+
+postinstallcmds = [
+    # extract the examples
+    'tar xvzf %(installdir)s/mkl/examples/examples_cluster_c.tgz -C %(installdir)s/mkl/examples/',
+    'tar xvzf %(installdir)s/mkl/examples/examples_cluster_f.tgz -C %(installdir)s/mkl/examples/',
+    'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/',
+    'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/',
+    'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/',
+]
+
+modextravars = {
+    'MKL_EXAMPLES': '%(installdir)s/mkl/examples/',
+}
+
+moduleclass = 'numlib'
diff --git a/Golden_Repo/2019a/jusuf_overlay/i/imkl/imkl-2019.5.281-ipsmpi-2019a-mt.eb b/Golden_Repo/2019a/jusuf_overlay/i/imkl/imkl-2019.5.281-ipsmpi-2019a-mt.eb
new file mode 100644
index 000000000..935bf9905
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/i/imkl/imkl-2019.5.281-ipsmpi-2019a-mt.eb
@@ -0,0 +1,32 @@
+name = 'imkl'
+version = '2019.5.281'
+
+homepage = 'http://software.intel.com/en-us/intel-mkl/'
+description = """Intel Math Kernel Library is a library of highly optimized,
+ extensively threaded math routines for science, engineering, and financial
+ applications that require maximum performance. Core math functions include
+ BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'version': '2019a-mt', 'name': 'ipsmpi'}
+
+sources = ['l_mkl_%(version)s.tgz']
+
+dontcreateinstalldir = 'True'
+
+postinstallcmds = [
+    # extract the examples
+    'tar xvzf %(installdir)s/mkl/examples/examples_cluster_c.tgz -C %(installdir)s/mkl/examples/',
+    'tar xvzf %(installdir)s/mkl/examples/examples_cluster_f.tgz -C %(installdir)s/mkl/examples/',
+    'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/',
+    'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/',
+    'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/',
+]
+
+modextravars = {
+    'MKL_EXAMPLES': '%(installdir)s/mkl/examples/',
+}
+
+moduleclass = 'numlib'
diff --git a/Golden_Repo/2019a/jusuf_overlay/i/imkl/imkl-2019.5.281-ipsmpi-2019a.eb b/Golden_Repo/2019a/jusuf_overlay/i/imkl/imkl-2019.5.281-ipsmpi-2019a.eb
new file mode 100644
index 000000000..4a8b0fa80
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/i/imkl/imkl-2019.5.281-ipsmpi-2019a.eb
@@ -0,0 +1,32 @@
+name = 'imkl'
+version = '2019.5.281'
+
+homepage = 'http://software.intel.com/en-us/intel-mkl/'
+description = """Intel Math Kernel Library is a library of highly optimized,
+ extensively threaded math routines for science, engineering, and financial
+ applications that require maximum performance. Core math functions include
+ BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'version': '2019a', 'name': 'ipsmpi'}
+
+sources = ['l_mkl_%(version)s.tgz']
+
+dontcreateinstalldir = 'True'
+
+postinstallcmds = [
+    # extract the examples
+    'tar xvzf %(installdir)s/mkl/examples/examples_cluster_c.tgz -C %(installdir)s/mkl/examples/',
+    'tar xvzf %(installdir)s/mkl/examples/examples_cluster_f.tgz -C %(installdir)s/mkl/examples/',
+    'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/',
+    'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/',
+    'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/',
+]
+
+modextravars = {
+    'MKL_EXAMPLES': '%(installdir)s/mkl/examples/',
+}
+
+moduleclass = 'numlib'
diff --git a/Golden_Repo/2019a/jusuf_overlay/i/imkl/imkl-2019.5.281.eb b/Golden_Repo/2019a/jusuf_overlay/i/imkl/imkl-2019.5.281.eb
new file mode 100644
index 000000000..f8a9289af
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/i/imkl/imkl-2019.5.281.eb
@@ -0,0 +1,36 @@
+name = 'imkl'
+version = '2019.5.281'
+
+homepage = 'http://software.intel.com/en-us/intel-mkl/'
+description = """Intel Math Kernel Library is a library of highly optimized,
+ extensively threaded math routines for science, engineering, and financial
+ applications that require maximum performance. Core math functions include
+ BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'version': 'dummy', 'name': 'dummy'}
+
+sources = ['l_mkl_%(version)s.tgz']
+
+dontcreateinstalldir = 'True'
+
+interfaces = False
+
+hidden = True
+
+postinstallcmds = [
+    # extract the examples
+    'tar xvzf %(installdir)s/mkl/examples/examples_cluster_c.tgz -C %(installdir)s/mkl/examples/',
+    'tar xvzf %(installdir)s/mkl/examples/examples_cluster_f.tgz -C %(installdir)s/mkl/examples/',
+    'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/',
+    'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/',
+    'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/',
+]
+
+modextravars = {
+    'MKL_EXAMPLES': '%(installdir)s/mkl/examples/',
+}
+
+moduleclass = 'numlib'
diff --git a/Golden_Repo/2019a/jusuf_overlay/i/intel-para/intel-para-2019a-mt.eb b/Golden_Repo/2019a/jusuf_overlay/i/intel-para/intel-para-2019a-mt.eb
new file mode 100644
index 000000000..932ac1ae3
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/i/intel-para/intel-para-2019a-mt.eb
@@ -0,0 +1,27 @@
+easyblock = 'Toolchain'
+
+name = 'intel-para'
+version = '2019a'
+versionsuffix = '-mt'
+
+intelversion = '2019.5.281'
+intelsuffix = '-GCC-8.3.0'
+
+homepage = ''
+description = """intel-para provides Intel C/C++ and Fortran compilers, ParaStationMPI & Intel MKL.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'version': '', 'name': 'dummy'}
+
+dependencies = [
+    ('iccifort', intelversion, intelsuffix),
+    ('icc', intelversion, intelsuffix),
+    ('ifort', intelversion, intelsuffix),
+    ('psmpi', '5.2.2-1', versionsuffix, ('iccifort', intelversion+intelsuffix)),
+    ('imkl', intelversion, '', ('ipsmpi', version+versionsuffix)),
+]
+
+
+moduleclass = 'toolchain'
diff --git a/Golden_Repo/2019a/jusuf_overlay/i/intel-para/intel-para-2019a.eb b/Golden_Repo/2019a/jusuf_overlay/i/intel-para/intel-para-2019a.eb
new file mode 100644
index 000000000..e7acc57d3
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/i/intel-para/intel-para-2019a.eb
@@ -0,0 +1,27 @@
+easyblock = 'Toolchain'
+
+name = 'intel-para'
+version = '2019a'
+versionsuffix = ''
+
+intelversion = '2019.5.281'
+intelsuffix = '-GCC-8.3.0'
+
+homepage = ''
+description = """intel-para provides Intel C/C++ and Fortran compilers, ParaStationMPI & Intel MKL.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'version': '', 'name': 'dummy'}
+
+dependencies = [
+    ('iccifort', intelversion, intelsuffix),
+    ('icc', intelversion, intelsuffix),
+    ('ifort', intelversion, intelsuffix),
+    ('psmpi', '5.2.2-1', versionsuffix, ('iccifort', intelversion+intelsuffix)),
+    ('imkl', intelversion, versionsuffix, ('ipsmpi', version)),
+]
+
+
+moduleclass = 'toolchain'
diff --git a/Golden_Repo/2019a/jusuf_overlay/i/ipsmpi/ipsmpi-2019a-mt.eb b/Golden_Repo/2019a/jusuf_overlay/i/ipsmpi/ipsmpi-2019a-mt.eb
new file mode 100644
index 000000000..9ffceee5e
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/i/ipsmpi/ipsmpi-2019a-mt.eb
@@ -0,0 +1,24 @@
+easyblock = "Toolchain"
+
+name = 'ipsmpi'
+version = '2019a'
+versionsuffix = '-mt'
+
+homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/'
+description = """Intel C/C++ and Fortran compilers, alongside ParaStationMPI.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+compver = '2019.5.281'
+gccsuffix = '-GCC-8.3.0'
+dependencies = [
+    ('iccifort', '%s%s' % (compver, gccsuffix)),
+    ('icc', compver, gccsuffix),
+    ('ifort', compver, gccsuffix),
+    ('psmpi', '5.2.2-1', versionsuffix, ('iccifort', '%s%s' % (compver, gccsuffix))),
+]
+
+moduleclass = 'toolchain'
diff --git a/Golden_Repo/2019a/jusuf_overlay/i/ipsmpi/ipsmpi-2019a.eb b/Golden_Repo/2019a/jusuf_overlay/i/ipsmpi/ipsmpi-2019a.eb
new file mode 100644
index 000000000..8b1007801
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/i/ipsmpi/ipsmpi-2019a.eb
@@ -0,0 +1,23 @@
+easyblock = "Toolchain"
+
+name = 'ipsmpi'
+version = '2019a'
+
+homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/'
+description = """Intel C/C++ and Fortran compilers, alongside ParaStationMPI.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+compver = '2019.5.281'
+gccsuffix = '-GCC-8.3.0'
+dependencies = [
+    ('iccifort', '%s%s' % (compver, gccsuffix)),
+    ('icc', compver, gccsuffix),
+    ('ifort', compver, gccsuffix),
+    ('psmpi', '5.2.2-1', '', ('iccifort', '%s%s' % (compver, gccsuffix))),
+]
+
+moduleclass = 'toolchain'
diff --git a/Golden_Repo/2019a/jusuf_overlay/j/JUBE/JUBE-2.3.0.eb b/Golden_Repo/2019a/jusuf_overlay/j/JUBE/JUBE-2.3.0.eb
new file mode 100644
index 000000000..dc757b4d9
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/j/JUBE/JUBE-2.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = "VersionIndependentPythonPackage"
+
+name = "JUBE"
+version = "2.3.0"
+
+homepage = "http://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.
+"""
+
+site_contacts = 's.luehrs@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = ['http://apps.fz-juelich.de/jsc/jube/jube2/download.php?file=']
+sources = [SOURCE_TAR_GZ]
+
+options = {'modulename': 'jube2'}
+
+sanity_check_paths = {
+  'files': ['bin/jube'],
+  'dirs': []
+}
+
+modextrapaths = {
+  'JUBE_INCLUDE_PATH': 'platform/slurm'
+}
+
+modluafooter = 'execute {cmd=\'eval "$(jube complete)"\',modeA={"load"}}'
+
+moduleclass = 'tools'
+
diff --git a/Golden_Repo/2019a/jusuf_overlay/l/libxc/libxc-3.0.1-iccifort-2019.5.281-GCC-8.3.0.eb b/Golden_Repo/2019a/jusuf_overlay/l/libxc/libxc-3.0.1-iccifort-2019.5.281-GCC-8.3.0.eb
new file mode 100644
index 000000000..a8d78279a
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/l/libxc/libxc-3.0.1-iccifort-2019.5.281-GCC-8.3.0.eb
@@ -0,0 +1,35 @@
+easyblock = 'ConfigureMake'
+
+name = 'libxc'
+version = '3.0.1'
+
+homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc'
+description = """Libxc is a library of exchange-correlation functionals for density-functional theory.
+ The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'iccifort', 'version': '2019.5.281-GCC-8.3.0'}
+toolchainopts = {'opt': True}
+
+sources = [SOURCELOWER_TAR_GZ]
+source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/%(version)s/']
+
+configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared --enable-fortran'
+
+# From the libxc mailing list
+# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect
+# a fully working testsuite soon (unless someone wants to volunteer to do
+# it, of course  ) In the meantime, unless the majority of the tests
+# fail, your build should be fine.
+#runtest = 'check'
+
+sanity_check_paths = {
+    'files': ['lib/libxc.a', 'lib/libxc.%s' % SHLIB_EXT, 'lib/libxcf90.a', 'lib/libxcf90.%s' % SHLIB_EXT],
+    'dirs': ['include'],
+}
+
+parallel = 1
+
+moduleclass = 'chem'
diff --git a/Golden_Repo/2019a/jusuf_overlay/n/nvidia/nvidia-driver.eb b/Golden_Repo/2019a/jusuf_overlay/n/nvidia/nvidia-driver.eb
new file mode 100644
index 000000000..8da09561c
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/n/nvidia/nvidia-driver.eb
@@ -0,0 +1,32 @@
+name = 'nvidia'
+version = 'driver'
+realversion = '440.33.01'
+
+homepage = 'https://developer.nvidia.com/cuda-toolkit'
+description = """This is a set of libraries normally installed by the NVIDIA driver installer."""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = [
+    'http://us.download.nvidia.com/tesla/%s/' % realversion,
+    'http://developer.download.nvidia.com/compute/cuda/%s/Prod/local_installers/' % '.'.join(realversion.split('.')[:2]),
+    'https://developer.nvidia.com/compute/cuda/%s/prod/local_installers/' % '.'.join(realversion.split('.')[:2]),
+    'https://developer.nvidia.com/compute/cuda/%s/Prod2/local_installers/' % '.'.join(realversion.split('.')[:2]),
+]
+
+sources = [
+    'NVIDIA-Linux-x86_64-%s.run' % realversion
+]
+
+# Causes issues pointing to wrong directories
+postinstallcmds = [
+    'rm %(installdir)s/lib64/libGL.la'
+]
+
+modluafooter = '''
+add_property("arch","gpu")
+'''
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/jusuf_overlay/p/pscom/pscom-Default-GCCcore-8.3.0.eb b/Golden_Repo/2019a/jusuf_overlay/p/pscom/pscom-Default-GCCcore-8.3.0.eb
new file mode 100644
index 000000000..63f8e579a
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/p/pscom/pscom-Default-GCCcore-8.3.0.eb
@@ -0,0 +1,41 @@
+easyblock = 'ConfigureMake'
+
+name = 'pscom'
+# Create drop-in replacement version that ensures over-riding behaviour
+version = "Default"
+realversion = "5.3.0-1_115_g12720ef_gateway"
+homepage = 'http://www.par-tec.com'
+description = """ParaStation is a robust and efficient cluster middleware, consisting of a high-performance
+communication layer (MPI) and a sophisticated management layer.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'GCCcore', 'version': '8.3.0'}
+
+sources = ['%%(name)s-%s.tar.gz' % realversion]
+
+builddependencies = [
+    ('popt', '1.16', '', True),
+    ('binutils', '2.32'),
+]
+
+dependencies = [
+    ('UCX', '1.6.1'),
+]
+
+sanity_check_paths = {
+    'files': ['include/%(name)s.h',
+        ('lib/libpscom.so', 'lib64/libpscom.so'),
+        ('lib/libpscom4ucp.so', 'lib64/libpscom4ucp.so'),
+        ('lib/libpscom4openib.so', 'lib64/libpscom4openib.so'),
+        ('lib/libpscom4gateway.so', 'lib64/libpscom4gateway.so'),
+    ],
+    'dirs': [],
+}
+
+modextravars = {
+    'PSCOMVERSION': '%s' % realversion,
+}
+
+moduleclass = 'tools'
diff --git a/Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-GCC-8.3.0.eb b/Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-GCC-8.3.0.eb
new file mode 100644
index 000000000..1fd9bb65c
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-GCC-8.3.0.eb
@@ -0,0 +1,35 @@
+name = 'psmpi'
+version = '5.2.2-1'
+
+homepage = 'https://github.com/ParaStation/psmpi2'
+description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation,
+based on MPICH v3. It provides extra low level communication libraries and integration with 
+various batch systems for tighter process control.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'GCC', 'version': '8.3.0'}
+
+sources = ['%(version)s.tar.gz']
+source_urls = ['https://github.com/ParaStation/psmpi/archive/']
+
+dependencies = [
+    ('pscom', 'Default'),
+]
+
+patches = [
+    'psmpi_shebang.patch'
+]
+
+mpich_opts = '--enable-static'
+
+threaded = False
+
+# use a more explicit module name to help our naming scheme
+modaltsoftname = 'ParaStationMPI'
+
+# Add a family for our naming scheme
+modluafooter = 'family("mpi")'
+
+moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0-mt.eb b/Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0-mt.eb
new file mode 100644
index 000000000..02a078de3
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0-mt.eb
@@ -0,0 +1,36 @@
+name = 'psmpi'
+version = '5.2.2-1'
+versionsuffix = '-mt'
+
+homepage = 'https://github.com/ParaStation/psmpi2'
+description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation,
+based on MPICH v3. It provides extra low level communication libraries and integration with 
+various batch systems for tighter process control.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'iccifort', 'version': '2019.3.199-GCC-8.3.0'}
+
+sources = ['%(version)s.tar.gz']
+source_urls = ['https://github.com/ParaStation/psmpi/archive/']
+
+dependencies = [
+    ('pscom', 'Default'),
+]
+
+patches = [
+    'psmpi_shebang.patch'
+]
+
+mpich_opts = '--enable-static'
+
+threaded = True
+
+# use a more explicit module name to help our naming scheme
+modaltsoftname = 'ParaStationMPI'
+
+# Add a family for our naming scheme
+modluafooter = 'family("mpi")'
+
+moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0.eb b/Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0.eb
new file mode 100644
index 000000000..817c03b11
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0.eb
@@ -0,0 +1,35 @@
+name = 'psmpi'
+version = '5.2.2-1'
+
+homepage = 'https://github.com/ParaStation/psmpi2'
+description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation,
+based on MPICH v3. It provides extra low level communication libraries and integration with 
+various batch systems for tighter process control.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'iccifort', 'version': '2019.3.199-GCC-8.3.0'}
+
+sources = ['%(version)s.tar.gz']
+source_urls = ['https://github.com/ParaStation/psmpi/archive/']
+
+dependencies = [
+    ('pscom', 'Default'),
+]
+
+patches = [
+    'psmpi_shebang.patch'
+]
+
+mpich_opts = '--enable-static'
+
+threaded = False
+
+# use a more explicit module name to help our naming scheme
+modaltsoftname = 'ParaStationMPI'
+
+# Add a family for our naming scheme
+modluafooter = 'family("mpi")'
+
+moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.5.281-GCC-8.3.0-mt.eb b/Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.5.281-GCC-8.3.0-mt.eb
new file mode 100644
index 000000000..ee540ce4b
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.5.281-GCC-8.3.0-mt.eb
@@ -0,0 +1,36 @@
+name = 'psmpi'
+version = '5.2.2-1'
+versionsuffix = '-mt'
+
+homepage = 'https://github.com/ParaStation/psmpi2'
+description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation,
+based on MPICH v3. It provides extra low level communication libraries and integration with 
+various batch systems for tighter process control.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'iccifort', 'version': '2019.5.281-GCC-8.3.0'}
+
+sources = ['%(version)s.tar.gz']
+source_urls = ['https://github.com/ParaStation/psmpi/archive/']
+
+dependencies = [
+    ('pscom', 'Default'),
+]
+
+patches = [
+    'psmpi_shebang.patch'
+]
+
+mpich_opts = '--enable-static'
+
+threaded = True
+
+# use a more explicit module name to help our naming scheme
+modaltsoftname = 'ParaStationMPI'
+
+# Add a family for our naming scheme
+modluafooter = 'family("mpi")'
+
+moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.5.281-GCC-8.3.0.eb b/Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.5.281-GCC-8.3.0.eb
new file mode 100644
index 000000000..626b52892
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.5.281-GCC-8.3.0.eb
@@ -0,0 +1,35 @@
+name = 'psmpi'
+version = '5.2.2-1'
+
+homepage = 'https://github.com/ParaStation/psmpi2'
+description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation,
+based on MPICH v3. It provides extra low level communication libraries and integration with 
+various batch systems for tighter process control.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'iccifort', 'version': '2019.5.281-GCC-8.3.0'}
+
+sources = ['%(version)s.tar.gz']
+source_urls = ['https://github.com/ParaStation/psmpi/archive/']
+
+dependencies = [
+    ('pscom', 'Default'),
+]
+
+patches = [
+    'psmpi_shebang.patch'
+]
+
+mpich_opts = '--enable-static'
+
+threaded = False
+
+# use a more explicit module name to help our naming scheme
+modaltsoftname = 'ParaStationMPI'
+
+# Add a family for our naming scheme
+modluafooter = 'family("mpi")'
+
+moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/jusuf_overlay/u/UDUNITS/UDUNITS-2.2.26-iccifort-2019.5.281-GCC-8.3.0.eb b/Golden_Repo/2019a/jusuf_overlay/u/UDUNITS/UDUNITS-2.2.26-iccifort-2019.5.281-GCC-8.3.0.eb
new file mode 100644
index 000000000..0afc2c43a
--- /dev/null
+++ b/Golden_Repo/2019a/jusuf_overlay/u/UDUNITS/UDUNITS-2.2.26-iccifort-2019.5.281-GCC-8.3.0.eb
@@ -0,0 +1,41 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild
+#
+# Copyright:: Copyright 2012-2013 University of Luxembourg, Ghent University
+# Authors::   Fotis Georgatos <fotis@cern.ch>, Kenneth Hoste (Ghent University)
+# License::   MIT/GPL
+# $Id$
+#
+# This work implements a part of the HPCBIOS project and is a component of the policy:
+# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-97.html
+##
+
+easyblock = 'ConfigureMake'
+
+name = 'UDUNITS'
+version = '2.2.26'
+
+homepage = 'http://www.unidata.ucar.edu/software/udunits/'
+description = """UDUNITS supports conversion of unit specifications between formatted and binary forms,
+ arithmetic manipulation of units, and conversion of values between compatible scales of measurement.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'iccifort', 'version': '2019.5.281-GCC-8.3.0'}
+toolchainopts = {'opt': True, 'pic': True}
+
+sources = [SOURCELOWER_TAR_GZ]
+source_urls = ['ftp://ftp.unidata.ucar.edu/pub/udunits']
+
+dependencies = [('expat', '2.2.6')]
+
+sanity_check_paths = {
+    'files': ['bin/udunits2', 'include/converter.h', 'include/udunits2.h', 'include/udunits.h',
+              'lib/libudunits2.a', 'lib/libudunits2.%s' % SHLIB_EXT],
+    'dirs': ['share'],
+}
+
+parallel = 1
+
+moduleclass = 'phys'
diff --git a/Golden_Repo/2019a/juwels_overlay/m/MVAPICH2/MVAPICH2-2.3.3-GCC-8.3.0-GDR.eb b/Golden_Repo/2019a/juwels_overlay/m/MVAPICH2/MVAPICH2-2.3.3-GCC-8.3.0-GDR.eb
new file mode 100644
index 000000000..da3e2d13d
--- /dev/null
+++ b/Golden_Repo/2019a/juwels_overlay/m/MVAPICH2/MVAPICH2-2.3.3-GCC-8.3.0-GDR.eb
@@ -0,0 +1,106 @@
+easyblock = 'Rpm'
+
+name = 'MVAPICH2'
+version = '2.3.3'
+versionsuffix = '-GDR'
+
+homepage = 'http://mvapich.cse.ohio-state.edu/overview/mvapich2/'
+description = """This is an MPI 3.0 implementation. It is based on MPICH2 and MVICH.  This module loads the following
+environment: MVAPICH2 %(version)s MPI tools and libraries for parallel computing. MVAPICH2 uses the launcher of
+Parastation MPI. Compiled with threading support (--enable-threads=runtime).
+
+To avoid conflicting thread/process pinning of the Parastation launcher and MVAPICH the affinity setting of MVAPICH2 has
+been deactivated by setting MV2_ENABLE_AFFINITY=0 CUDA support has been enabled by setting MV2_USE_CUDA=1
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+cudaversion = '10.1.105'
+compilerversion = '8.3.0'
+cuda_major_minor_ver = '.'.join(cudaversion.split('.')[:2])
+
+toolchain = {'name': 'GCC', 'version': compilerversion}
+
+sources = ['%s%s-mcast.cuda%s.mofed4.6.gnu%s-%s-2.el7.x86_64.rpm' % (name.lower(), versionsuffix.lower(), cuda_major_minor_ver, compilerversion, version)]
+
+dependencies = [
+    ('CUDA', cudaversion, '', True)
+]
+
+builddependencies = [
+    ('rpmrebuild','2.14', '', True)
+]
+
+# SLURM exports env vars by default so this is sufficient on JURECA
+modextravars = {
+    'MV2_PATH':'%(installdir)s',
+    'MV2_ENABLE_AFFINITY':'0',
+    'MV2_USE_CUDA':'1',
+    'MV2_USE_GPUDIRECT_GDRCOPY':'1',
+    'MV2_GPUDIRECT_LIMIT': '4194304',
+    'LD_PRELOAD': '%(installdir)s/lib64/libmpi.so',
+    'MV2_USE_RDMA_CM': '0',
+}
+
+# Ugly hack
+installdir = '%(installdir)s'
+
+path_to_fix = "/opt/mvapich2/gdr/%s/mcast/no-openacc/cuda%s/mofed4.6/mpirun/gnu%s" % (version, cuda_major_minor_ver, compilerversion)
+
+postinstallcmds = [
+    # Move to bin/ lib64/ include/ libexec/ and share/ to the correct directory
+    "mv %s%s/* %s" % (installdir, path_to_fix, installdir),
+    # Clean the unneded opt/
+    "rm -Rf %s/opt " % installdir,
+    # Fix paths inside the wrappers
+    "sed -i s#%s#%s#g %s/bin/mpicc"   % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpicxx"  % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpic++"  % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpif77"  % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpif90"  % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpifort" % (path_to_fix, installdir, installdir),
+    # Replace the stubs to make them point to the nvidia libraries provided by the module
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpif77"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpif90"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpifort" % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpif77"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpif90"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpifort" % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpif77"  % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpif90"  % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpifort" % (cuda_major_minor_ver, installdir),
+    # Add -lnvidia-ml inside the wrappers to avoid undefined references in libmpi.so
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpicc",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpicxx",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpic++",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpif77",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpif90",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpifort",
+    # Add -lmpi before -lcuda. Otherwise the CUDA symbols that libmpi redefines are not picked up from the correct path
+    # and GDR breaks
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpicc",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpicxx",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpic++",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpif77",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpif90",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpifort",
+    # Remove launchers
+    "rm %(installdir)s/bin/mpiexec* %(installdir)s/bin/mpirun*",
+]
+
+# Add a family for our naming scheme
+modluafooter = """
+family("mpi")
+add_property("arch","gpu")
+"""
+
+moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/juwels_overlay/m/MVAPICH2/MVAPICH2-2.3.3-PGI-19.3-GCC-8.3.0-GDR.eb b/Golden_Repo/2019a/juwels_overlay/m/MVAPICH2/MVAPICH2-2.3.3-PGI-19.3-GCC-8.3.0-GDR.eb
new file mode 100644
index 000000000..c4d461974
--- /dev/null
+++ b/Golden_Repo/2019a/juwels_overlay/m/MVAPICH2/MVAPICH2-2.3.3-PGI-19.3-GCC-8.3.0-GDR.eb
@@ -0,0 +1,121 @@
+easyblock = 'Rpm'
+
+name = 'MVAPICH2'
+version = '2.3.3'
+versionsuffix = '-GDR'
+
+homepage = 'http://mvapich.cse.ohio-state.edu/overview/mvapich2/'
+description = """This is an MPI 3.0 implementation. It is based on MPICH2 and MVICH.  This module loads the following
+environment: MVAPICH2 %(version)s MPI tools and libraries for parallel computing. MVAPICH2 uses the launcher of
+Parastation MPI. Compiled with threading support (--enable-threads=runtime).
+
+To avoid conflicting thread/process pinning of the Parastation launcher and MVAPICH the affinity setting of MVAPICH2 has
+been deactivated by setting MV2_ENABLE_AFFINITY=0 CUDA support has been enabled by setting MV2_USE_CUDA=1
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+cudaversion = '10.1.105'
+cuda_major_minor_ver = '.'.join(cudaversion.split('.')[:2])
+# There is a minor version mismatch in this case. This variable refers to the compiler used to compile MVAPICH, not the compiler on the toolchain
+compilerversion = '19.1'
+
+toolchain = {'name': 'PGI', 'version': '19.3-GCC-8.3.0'}
+
+sources = ['%s%s-mcast.cuda%s.mofed4.6.pgi%s-%s-2.el7.x86_64.rpm' % (name.lower(), versionsuffix.lower(), cuda_major_minor_ver, compilerversion, version)]
+
+dependencies = [
+    ('CUDA', cudaversion, '', True)
+]
+
+builddependencies = [
+    ('rpmrebuild', '2.14', '', True)
+]
+
+# SLURM exports env vars by default so this is sufficient on JURECA
+modextravars = {
+    'MV2_PATH':'%(installdir)s',
+    'MV2_ENABLE_AFFINITY':'0',
+    'MV2_USE_CUDA':'1',
+    'MV2_USE_GPUDIRECT_GDRCOPY':'1',
+    'MV2_GPUDIRECT_LIMIT': '4194304',
+    'LD_PRELOAD': '%(installdir)s/lib64/libmpi.so',
+    'MV2_USE_RDMA_CM': '0',
+}
+
+# Ugly hack
+installdir = '%(installdir)s'
+
+path_to_fix = "/opt/mvapich2/gdr/%s/mcast/no-openacc/cuda%s/mofed4.6/mpirun/pgi%s" % (version, cuda_major_minor_ver, compilerversion)
+
+postinstallcmds = [
+    # Move to bin/ lib64/ include/ libexec/ and share/ to the correct directory
+    "mv %s%s/* %s" % (installdir, path_to_fix, installdir),
+    # Clean the unneded opt/
+    "rm -Rf %s/opt " % installdir,
+    # Fix paths inside the wrappers
+    "sed -i s#%s#%s#g %s/bin/mpicc"   % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpicxx"  % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpic++"  % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpif77"  % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpif90"  % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpifort" % (path_to_fix, installdir, installdir),
+    # Replace the stubs to make them point to the nvidia libraries provided by the module
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpif77"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpif90"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpifort" % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpif77"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpif90"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpifort" % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpif77"  % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpif90"  % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpifort" % (cuda_major_minor_ver, installdir),
+    # Add -lnvidia-ml inside the wrappers to avoid undefined references in libmpi.so
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpicc",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpicxx",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpic++",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpif77",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpif90",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpifort",
+    # Add -lmpi before -lcuda. Otherwise the CUDA symbols that libmpi redefines are not picked up from the correct path
+    # and GDR breaks
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpicc",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpicxx",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpic++",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpif77",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpif90",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpifort",
+    # Remove -g
+    "sed -i s#' -g '#' '#g %(installdir)s/bin/mpicc",
+    "sed -i s#' -g '#' '#g %(installdir)s/bin/mpicxx",
+    "sed -i s#' -g '#' '#g %(installdir)s/bin/mpic++",
+    "sed -i s#' -g '#' '#g %(installdir)s/bin/mpif77",
+    "sed -i s#' -g '#' '#g %(installdir)s/bin/mpif90",
+    "sed -i s#' -g '#' '#g %(installdir)s/bin/mpifort",
+    # Remove -tp=px
+    "sed -i s#'-tp=px'#''#g %(installdir)s/bin/mpicc",
+    "sed -i s#'-tp=px'#''#g %(installdir)s/bin/mpicxx",
+    "sed -i s#'-tp=px'#''#g %(installdir)s/bin/mpic++",
+    "sed -i s#'-tp=px'#''#g %(installdir)s/bin/mpif77",
+    "sed -i s#'-tp=px'#''#g %(installdir)s/bin/mpif90",
+    "sed -i s#'-tp=px'#''#g %(installdir)s/bin/mpifort",
+    # Remove launchers
+    "rm %(installdir)s/bin/mpiexec* %(installdir)s/bin/mpirun*",
+]
+
+# Add a family for our naming scheme
+modluafooter = """
+family("mpi")
+add_property("arch","gpu")
+"""
+
+moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/knl_overlay/i/impi-settings/impi-settings-2019-default.eb b/Golden_Repo/2019a/knl_overlay/i/impi-settings/impi-settings-2019-default.eb
new file mode 100644
index 000000000..57c502e70
--- /dev/null
+++ b/Golden_Repo/2019a/knl_overlay/i/impi-settings/impi-settings-2019-default.eb
@@ -0,0 +1,25 @@
+easyblock = 'SystemBundle'
+
+name = 'impi-settings'
+version = '2019'
+versionsuffix = 'default'
+
+homepage = ''
+description = """This is a module to load the default IntelMPI configuration"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+modextravars = {
+#    'UCX_TLS': 'dc_x,sm,self'
+    'I_MPI_PMI_VALUE_LENGTH_MAX': '900',
+    # Needed for PSM and harmless for InfiniBand. For ParaStation it is set on the pscom module
+    'HFI_NO_CPUAFFINITY': 'YES',
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/knl_overlay/i/impi/impi-2019.3.199-iccifort-2019.3.199-GCC-8.3.0.eb b/Golden_Repo/2019a/knl_overlay/i/impi/impi-2019.3.199-iccifort-2019.3.199-GCC-8.3.0.eb
index 31dea19cf..75946eb01 100644
--- a/Golden_Repo/2019a/knl_overlay/i/impi/impi-2019.3.199-iccifort-2019.3.199-GCC-8.3.0.eb
+++ b/Golden_Repo/2019a/knl_overlay/i/impi/impi-2019.3.199-iccifort-2019.3.199-GCC-8.3.0.eb
@@ -26,23 +26,22 @@ postinstallcmds = [
 
 # use a more explicit module name to help our naming scheme
 modaltsoftname = 'IntelMPI'
-# Add a family for our naming scheme
-modluafooter = 'family("mpi")'
 dontcreateinstalldir = 'True'
 # set up all the mpi commands to work as expected
 set_mpi_wrappers_all = 'True'
 
 modextravars = {
-#    'I_MPI_OFA_TRANSLATION_CACHE': '0',
-#    'I_MPI_DAPL_TRANSLATION_CACHE': '0',
-    # Needed for PSM and harmless for InfiniBand. For ParaStation it is set on the pscom module
-    'HFI_NO_CPUAFFINITY': 'YES',
     # The default algorithms hang for large core counts
     'I_MPI_ADJUST_GATHER': '1',
     'I_MPI_ADJUST_GATHERV': '3',
 }
 
-#modloadmsg =  'This version of Intel MPI have serious issues. Particularly with certain collective functions at large\n'
-#modloadmsg += 'core counts. Please load version 2018.4 instead'
+# Add a family for our naming scheme
+modluafooter = '''
+family("mpi")
+if not ( isloaded("mpi-settings/default") ) then
+    load("mpi-settings/default")
+end
+'''
 
 moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/knl_overlay/p/psmpi-settings/psmpi-settings-5.2-default.eb b/Golden_Repo/2019a/knl_overlay/p/psmpi-settings/psmpi-settings-5.2-default.eb
new file mode 100644
index 000000000..dc2ecb9f2
--- /dev/null
+++ b/Golden_Repo/2019a/knl_overlay/p/psmpi-settings/psmpi-settings-5.2-default.eb
@@ -0,0 +1,23 @@
+easyblock = 'SystemBundle'
+
+name = 'psmpi-settings'
+version = '5.2'
+versionsuffix = 'default'
+
+homepage = ''
+description = """This is a module to load the default ParaStationMPI configuration"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+modextravars = {
+    'PSP_READAHEAD': '4096',
+    'HFI_NO_CPUAFFINITY': '1',
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/knl_overlay/p/psmpi-settings/psmpi-settings-5.2-mt-default.eb b/Golden_Repo/2019a/knl_overlay/p/psmpi-settings/psmpi-settings-5.2-mt-default.eb
new file mode 100644
index 000000000..da0250abc
--- /dev/null
+++ b/Golden_Repo/2019a/knl_overlay/p/psmpi-settings/psmpi-settings-5.2-mt-default.eb
@@ -0,0 +1,23 @@
+easyblock = 'SystemBundle'
+
+name = 'psmpi-settings'
+version = '5.2-mt'
+versionsuffix = 'default'
+
+homepage = ''
+description = """This is a module to load the default ParaStationMPI configuration"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+modextravars = {
+    'PSP_READAHEAD': '4096',
+    'HFI_NO_CPUAFFINITY': '1',
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/knl_overlay/p/psmpi/psmpi-5.2.2-1-GCC-8.3.0.eb b/Golden_Repo/2019a/knl_overlay/p/psmpi/psmpi-5.2.2-1-GCC-8.3.0.eb
index 8183ebedb..f846c7f09 100644
--- a/Golden_Repo/2019a/knl_overlay/p/psmpi/psmpi-5.2.2-1-GCC-8.3.0.eb
+++ b/Golden_Repo/2019a/knl_overlay/p/psmpi/psmpi-5.2.2-1-GCC-8.3.0.eb
@@ -44,15 +44,15 @@ threaded = False
 
 configopts  = ' --with-pscom-builtin=psm2 '
 
-modextravars = {
-    'PSP_READAHEAD': '4096',
-    'HFI_NO_CPUAFFINITY': '1'
-}
-
 # use a more explicit module name to help our naming scheme
 modaltsoftname = 'ParaStationMPI'
 
 # Add a family for our naming scheme
-modluafooter = 'family("mpi")'
+modluafooter = '''
+family("mpi")
+if not ( isloaded("mpi-settings/default") ) then
+    load("mpi-settings/default")
+end
+'''
 
 moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/knl_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0-mt.eb b/Golden_Repo/2019a/knl_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0-mt.eb
index 1efbd7dfd..9a854fa52 100644
--- a/Golden_Repo/2019a/knl_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0-mt.eb
+++ b/Golden_Repo/2019a/knl_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0-mt.eb
@@ -45,15 +45,15 @@ threaded = True
 
 configopts  = ' --with-pscom-builtin=psm2 '
 
-modextravars = {
-    'PSP_READAHEAD': '4096',
-    'HFI_NO_CPUAFFINITY': '1'
-}
-
 # use a more explicit module name to help our naming scheme
 modaltsoftname = 'ParaStationMPI'
 
 # Add a family for our naming scheme
-modluafooter = 'family("mpi")'
+modluafooter = '''
+family("mpi")
+if not ( isloaded("mpi-settings/default") ) then
+    load("mpi-settings/default")
+end
+'''
 
 moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/knl_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0.eb b/Golden_Repo/2019a/knl_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0.eb
index 4a1d38ed9..c8b31af4c 100644
--- a/Golden_Repo/2019a/knl_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0.eb
+++ b/Golden_Repo/2019a/knl_overlay/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0.eb
@@ -44,15 +44,15 @@ threaded = False
 
 configopts  = ' --with-pscom-builtin=psm2 '
 
-modextravars = {
-    'PSP_READAHEAD': '4096',
-    'HFI_NO_CPUAFFINITY': '1'
-}
-
 # use a more explicit module name to help our naming scheme
 modaltsoftname = 'ParaStationMPI'
 
 # Add a family for our naming scheme
-modluafooter = 'family("mpi")'
+modluafooter = '''
+family("mpi")
+if not ( isloaded("mpi-settings/default") ) then
+    load("mpi-settings/default")
+end
+'''
 
 moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/l/libxsmm/libxsmm-1.14-iccifort-2019.3.199-GCC-8.3.0.eb b/Golden_Repo/2019a/l/libxsmm/libxsmm-1.14-iccifort-2019.3.199-GCC-8.3.0.eb
new file mode 100644
index 000000000..dcf79068c
--- /dev/null
+++ b/Golden_Repo/2019a/l/libxsmm/libxsmm-1.14-iccifort-2019.3.199-GCC-8.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'ConfigureMake'
+
+name = 'libxsmm'
+version = '1.14'
+
+homepage = 'https://github.com/hfp/libxsmm'
+description = """LIBXSMM is a library for small dense and small sparse matrix-matrix multiplications
+targeting Intel Architecture (x86)."""
+
+site_contacts = "sc@fz-juelich.de"
+
+toolchain = {'name': 'iccifort', 'version': '2019.3.199-GCC-8.3.0'}
+
+sources = ['%(version)s.tar.gz']
+source_urls = ['https://github.com/hfp/libxsmm/archive/']
+
+dependencies = [
+    ('imkl', '2019.3.199', '', True),
+]
+
+# install both static and dynamic version
+installopts = ['PREFIX=%(installdir)s', 'PREFIX=%(installdir)s STATIC=0']
+
+skipsteps = ['configure']
+maxparallel = 1
+
+runtest = "STATIC=0 test"
+
+sanity_check_paths = {
+    'files': ['bin/libxsmm_gemm_generator', 'include/libxsmm.h', 'lib/libxsmm.a', 'lib/libxsmm.%s' % SHLIB_EXT],
+    'dirs': ['share']
+}
+
+moduleclass = 'math'
diff --git a/Golden_Repo/2019a/m/MVAPICH2-settings/MVAPICH2-2.3-GDR-default.eb b/Golden_Repo/2019a/m/MVAPICH2-settings/MVAPICH2-2.3-GDR-default.eb
new file mode 100644
index 000000000..82a0207ac
--- /dev/null
+++ b/Golden_Repo/2019a/m/MVAPICH2-settings/MVAPICH2-2.3-GDR-default.eb
@@ -0,0 +1,26 @@
+easyblock = 'SystemBundle'
+
+name = 'MVAPICH2-settings'
+version = '2.3-GDR'
+versionsuffix = 'default'
+
+homepage = ''
+description = """This is a module to load the default MVAPICH2 GDR configuration"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+modextravars = {
+    'MV2_ENABLE_AFFINITY':'0',
+    'MV2_USE_CUDA':'1',
+    'MV2_USE_GPUDIRECT_GDRCOPY':'1',
+    'MV2_USE_RDMA_CM':'0',
+    'MV2_GPUDIRECT_LIMIT': '4194304',
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/m/MVAPICH2/MVAPICH2-2.3.2-GCC-8.3.0-GDR.eb b/Golden_Repo/2019a/m/MVAPICH2/MVAPICH2-2.3.2-GCC-8.3.0-GDR.eb
index 48a5b5d31..ce84284c1 100644
--- a/Golden_Repo/2019a/m/MVAPICH2/MVAPICH2-2.3.2-GCC-8.3.0-GDR.eb
+++ b/Golden_Repo/2019a/m/MVAPICH2/MVAPICH2-2.3.2-GCC-8.3.0-GDR.eb
@@ -57,12 +57,12 @@ postinstallcmds = [
     "sed -i s#%s#%s#g %s/bin/mpif90"  % (path_to_fix, installdir, installdir),
     "sed -i s#%s#%s#g %s/bin/mpifort" % (path_to_fix, installdir, installdir),
     # Replace the stubs to make them point to the nvidia libraries provided by the module
-    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
-    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
-    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
-    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpif77"  % (cuda_major_minor_ver, installdir),
-    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpif90"  % (cuda_major_minor_ver, installdir),
-    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpifort" % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#\$EBROOTNVIDIA/lib64#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#\$EBROOTNVIDIA/lib64#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#\$EBROOTNVIDIA/lib64#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#\$EBROOTNVIDIA/lib64#g %s/bin/mpif77"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#\$EBROOTNVIDIA/lib64#g %s/bin/mpif90"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#\$EBROOTNVIDIA/lib64#g %s/bin/mpifort" % (cuda_major_minor_ver, installdir),
     "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
     "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
     "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
diff --git a/Golden_Repo/2019a/m/MVAPICH2/MVAPICH2-2.3.2-PGI-19.3-GCC-8.3.0-GDR.eb b/Golden_Repo/2019a/m/MVAPICH2/MVAPICH2-2.3.2-PGI-19.3-GCC-8.3.0-GDR.eb
index 029db42e1..7b8f1e1eb 100644
--- a/Golden_Repo/2019a/m/MVAPICH2/MVAPICH2-2.3.2-PGI-19.3-GCC-8.3.0-GDR.eb
+++ b/Golden_Repo/2019a/m/MVAPICH2/MVAPICH2-2.3.2-PGI-19.3-GCC-8.3.0-GDR.eb
@@ -58,12 +58,12 @@ postinstallcmds = [
     "sed -i s#%s#%s#g %s/bin/mpif90"  % (path_to_fix, installdir, installdir),
     "sed -i s#%s#%s#g %s/bin/mpifort" % (path_to_fix, installdir, installdir),
     # Replace the stubs to make them point to the nvidia libraries provided by the module
-    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
-    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
-    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
-    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpif77"  % (cuda_major_minor_ver, installdir),
-    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpif90"  % (cuda_major_minor_ver, installdir),
-    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpifort" % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#\$EBROOTNVIDIA/lib64#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#\$EBROOTNVIDIA/lib64#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#\$EBROOTNVIDIA/lib64#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#\$EBROOTNVIDIA/lib64#g %s/bin/mpif77"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#\$EBROOTNVIDIA/lib64#g %s/bin/mpif90"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#\$EBROOTNVIDIA/lib64#g %s/bin/mpifort" % (cuda_major_minor_ver, installdir),
     "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
     "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
     "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
diff --git a/Golden_Repo/2019a/m/MVAPICH2/MVAPICH2-2.3.3-GCC-8.3.0-GDR.eb b/Golden_Repo/2019a/m/MVAPICH2/MVAPICH2-2.3.3-GCC-8.3.0-GDR.eb
new file mode 100644
index 000000000..1a43b3684
--- /dev/null
+++ b/Golden_Repo/2019a/m/MVAPICH2/MVAPICH2-2.3.3-GCC-8.3.0-GDR.eb
@@ -0,0 +1,103 @@
+easyblock = 'Rpm'
+
+name = 'MVAPICH2'
+version = '2.3.3'
+versionsuffix = '-GDR'
+
+homepage = 'http://mvapich.cse.ohio-state.edu/overview/mvapich2/'
+description = """This is an MPI 3.0 implementation. It is based on MPICH2 and MVICH.  This module loads the following
+environment: MVAPICH2 %(version)s MPI tools and libraries for parallel computing. MVAPICH2 uses the launcher of
+Parastation MPI. Compiled with threading support (--enable-threads=runtime).
+
+To avoid conflicting thread/process pinning of the Parastation launcher and MVAPICH the affinity setting of MVAPICH2 has
+been deactivated by setting MV2_ENABLE_AFFINITY=0 CUDA support has been enabled by setting MV2_USE_CUDA=1
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+cudaversion = '10.1.105'
+compilerversion = '8.3.0'
+cuda_major_minor_ver = '.'.join(cudaversion.split('.')[:2])
+
+toolchain = {'name': 'GCC', 'version': compilerversion}
+
+sources = ['%s%s-mcast.cuda%s.mofed4.6.gnu%s-%s-2.el7.x86_64.rpm' % (name.lower(), versionsuffix.lower(), cuda_major_minor_ver, compilerversion, version)]
+
+dependencies = [
+    ('CUDA', cudaversion, '', True)
+]
+
+builddependencies = [
+    ('rpmrebuild','2.14', '', True)
+]
+
+modextravars = {
+    'MV2_PATH':'%(installdir)s',
+    'LD_PRELOAD': '%(installdir)s/lib64/libmpi.so',
+}
+
+# Ugly hack
+installdir = '%(installdir)s'
+
+path_to_fix = "/opt/mvapich2/gdr/%s/mcast/no-openacc/cuda%s/mofed4.6/mpirun/gnu%s" % (version, cuda_major_minor_ver, compilerversion)
+
+postinstallcmds = [
+    # Move to bin/ lib64/ include/ libexec/ and share/ to the correct directory
+    "mv %s%s/* %s" % (installdir, path_to_fix, installdir),
+    # Clean the unneded opt/
+    "rm -Rf %s/opt " % installdir,
+    # Fix paths inside the wrappers
+    "sed -i s#%s#%s#g %s/bin/mpicc"   % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpicxx"  % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpic++"  % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpif77"  % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpif90"  % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpifort" % (path_to_fix, installdir, installdir),
+    # Replace the stubs to make them point to the nvidia libraries provided by the module
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpif77"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpif90"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpifort" % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpif77"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpif90"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpifort" % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpif77"  % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpif90"  % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpifort" % (cuda_major_minor_ver, installdir),
+    # Add -lnvidia-ml inside the wrappers to avoid undefined references in libmpi.so
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpicc",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpicxx",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpic++",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpif77",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpif90",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpifort",
+    # Add -lmpi before -lcuda. Otherwise the CUDA symbols that libmpi redefines are not picked up from the correct path
+    # and GDR breaks
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpicc",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpicxx",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpic++",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpif77",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpif90",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpifort",
+    # Remove launchers
+    "rm %(installdir)s/bin/mpiexec* %(installdir)s/bin/mpirun*",
+]
+
+# Add a family for our naming scheme
+modluafooter = """
+family("mpi")
+add_property("arch","gpu")
+if not ( isloaded("mpi-settings/default") ) then
+    load("mpi-settings/default")
+end
+"""
+
+moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/m/MVAPICH2/MVAPICH2-2.3.3-PGI-19.3-GCC-8.3.0-GDR.eb b/Golden_Repo/2019a/m/MVAPICH2/MVAPICH2-2.3.3-PGI-19.3-GCC-8.3.0-GDR.eb
new file mode 100644
index 000000000..b1fe9d0f4
--- /dev/null
+++ b/Golden_Repo/2019a/m/MVAPICH2/MVAPICH2-2.3.3-PGI-19.3-GCC-8.3.0-GDR.eb
@@ -0,0 +1,118 @@
+easyblock = 'Rpm'
+
+name = 'MVAPICH2'
+version = '2.3.3'
+versionsuffix = '-GDR'
+
+homepage = 'http://mvapich.cse.ohio-state.edu/overview/mvapich2/'
+description = """This is an MPI 3.0 implementation. It is based on MPICH2 and MVICH.  This module loads the following
+environment: MVAPICH2 %(version)s MPI tools and libraries for parallel computing. MVAPICH2 uses the launcher of
+Parastation MPI. Compiled with threading support (--enable-threads=runtime).
+
+To avoid conflicting thread/process pinning of the Parastation launcher and MVAPICH the affinity setting of MVAPICH2 has
+been deactivated by setting MV2_ENABLE_AFFINITY=0 CUDA support has been enabled by setting MV2_USE_CUDA=1
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+cudaversion = '10.1.105'
+cuda_major_minor_ver = '.'.join(cudaversion.split('.')[:2])
+# There is a minor version mismatch in this case. This variable refers to the compiler used to compile MVAPICH, not the compiler on the toolchain
+compilerversion = '19.1'
+
+toolchain = {'name': 'PGI', 'version': '19.3-GCC-8.3.0'}
+
+sources = ['%s%s-mcast.cuda%s.mofed4.6.pgi%s-%s-2.el7.x86_64.rpm' % (name.lower(), versionsuffix.lower(), cuda_major_minor_ver, compilerversion, version)]
+
+dependencies = [
+    ('CUDA', cudaversion, '', True)
+]
+
+builddependencies = [
+    ('rpmrebuild', '2.14', '', True)
+]
+
+modextravars = {
+    'MV2_PATH':'%(installdir)s',
+    'LD_PRELOAD': '%(installdir)s/lib64/libmpi.so',
+}
+
+# Ugly hack
+installdir = '%(installdir)s'
+
+path_to_fix = "/opt/mvapich2/gdr/%s/mcast/no-openacc/cuda%s/mofed4.6/mpirun/pgi%s" % (version, cuda_major_minor_ver, compilerversion)
+
+postinstallcmds = [
+    # Move to bin/ lib64/ include/ libexec/ and share/ to the correct directory
+    "mv %s%s/* %s" % (installdir, path_to_fix, installdir),
+    # Clean the unneded opt/
+    "rm -Rf %s/opt " % installdir,
+    # Fix paths inside the wrappers
+    "sed -i s#%s#%s#g %s/bin/mpicc"   % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpicxx"  % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpic++"  % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpif77"  % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpif90"  % (path_to_fix, installdir, installdir),
+    "sed -i s#%s#%s#g %s/bin/mpifort" % (path_to_fix, installdir, installdir),
+    # Replace the stubs to make them point to the nvidia libraries provided by the module
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpif77"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpif90"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s/lib64/stubs#$EBROOTNVIDIA/lib64#g %s/bin/mpifort" % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpif77"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpif90"  % (cuda_major_minor_ver, installdir),
+    "sed -i s#/usr/local/cuda-%s#$EBROOTCUDA#g %s/bin/mpifort" % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpicc"   % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpicxx"  % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpic++"  % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpif77"  % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpif90"  % (cuda_major_minor_ver, installdir),
+    #"sed -i s#/opt/cuda/%s#$EBROOTCUDA#g %s/bin/mpifort" % (cuda_major_minor_ver, installdir),
+    # Add -lnvidia-ml inside the wrappers to avoid undefined references in libmpi.so
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpicc",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpicxx",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpic++",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpif77",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpif90",
+    "sed -i s#'-lmpi '#'-lmpi -lnvidia-ml '#g %(installdir)s/bin/mpifort",
+    # Add -lmpi before -lcuda. Otherwise the CUDA symbols that libmpi redefines are not picked up from the correct path
+    # and GDR breaks
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpicc",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpicxx",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpic++",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpif77",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpif90",
+    "sed -i s#'final_ldflags=\" '#'final_ldflags=\" -lmpi '#g %(installdir)s/bin/mpifort",
+    # Remove -g
+    "sed -i s#' -g '#' '#g %(installdir)s/bin/mpicc",
+    "sed -i s#' -g '#' '#g %(installdir)s/bin/mpicxx",
+    "sed -i s#' -g '#' '#g %(installdir)s/bin/mpic++",
+    "sed -i s#' -g '#' '#g %(installdir)s/bin/mpif77",
+    "sed -i s#' -g '#' '#g %(installdir)s/bin/mpif90",
+    "sed -i s#' -g '#' '#g %(installdir)s/bin/mpifort",
+    # Remove -tp=px
+    "sed -i s#'-tp=px'#''#g %(installdir)s/bin/mpicc",
+    "sed -i s#'-tp=px'#''#g %(installdir)s/bin/mpicxx",
+    "sed -i s#'-tp=px'#''#g %(installdir)s/bin/mpic++",
+    "sed -i s#'-tp=px'#''#g %(installdir)s/bin/mpif77",
+    "sed -i s#'-tp=px'#''#g %(installdir)s/bin/mpif90",
+    "sed -i s#'-tp=px'#''#g %(installdir)s/bin/mpifort",
+    # Remove launchers
+    "rm %(installdir)s/bin/mpiexec* %(installdir)s/bin/mpirun*",
+]
+
+# Add a family for our naming scheme
+modluafooter = """
+family("mpi")
+add_property("arch","gpu")
+if not ( isloaded("mpi-settings/default") ) then
+    load("mpi-settings/default")
+end
+"""
+
+moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/n/nvidia/nvidia-driver.eb b/Golden_Repo/2019a/n/nvidia/nvidia-driver.eb
new file mode 100644
index 000000000..113c5fda8
--- /dev/null
+++ b/Golden_Repo/2019a/n/nvidia/nvidia-driver.eb
@@ -0,0 +1,32 @@
+name = 'nvidia'
+version = 'driver'
+realversion = '418.87.00'
+
+homepage = 'https://developer.nvidia.com/cuda-toolkit'
+description = """This is a set of libraries normally installed by the NVIDIA driver installer."""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = [
+    'http://us.download.nvidia.com/tesla/%s/' % realversion,
+    'http://developer.download.nvidia.com/compute/cuda/%s/Prod/local_installers/' % '.'.join(realversion.split('.')[:2]),
+    'https://developer.nvidia.com/compute/cuda/%s/prod/local_installers/' % '.'.join(realversion.split('.')[:2]),
+    'https://developer.nvidia.com/compute/cuda/%s/Prod2/local_installers/' % '.'.join(realversion.split('.')[:2]),
+]
+
+sources = [
+    'NVIDIA-Linux-x86_64-%s.run' % realversion
+]
+
+# Causes issues pointing to wrong directories
+postinstallcmds = [
+    'rm %(installdir)s/lib64/libGL.la'
+]
+
+modluafooter = '''
+add_property("arch","gpu")
+'''
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/p/PGI/PGI-19.10-GCC-8.3.0.eb b/Golden_Repo/2019a/p/PGI/PGI-19.10-GCC-8.3.0.eb
new file mode 100644
index 000000000..dbda3e86d
--- /dev/null
+++ b/Golden_Repo/2019a/p/PGI/PGI-19.10-GCC-8.3.0.eb
@@ -0,0 +1,39 @@
+name = 'PGI'
+version = '19.10'
+binutilsver = '2.32'
+gccver = '8.3.0'
+versionsuffix = '-GCC-%s' % gccver
+
+homepage = 'http://www.pgroup.com/'
+description = """C, C++ and Fortran compilers from The Portland Group - PGI"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': ''}
+
+sources = ['pgilinux-20%(version_major)s-%(version_major)s%(version_minor)s-x86-64.tar.gz']
+
+dependencies = [
+    ('GCCcore', gccver),
+    ('binutils', binutilsver, '', ('GCCcore', gccver)),
+    # This is necessary to avoid cases where just libnuma.so.1 is present in the system and -lnuma fails
+    ('numactl', '2.0.12', '', ('GCCcore', gccver)),
+]
+
+install_amd = False
+install_managed = True
+install_nvidia = True
+install_java = True
+
+# We use a HMNS, so let's enforce a unique compiler
+modluafooter = 'family("compiler")'
+
+# Always do a recursive unload on compilers
+recursive_module_unload = True
+
+#postinstallcmds = [
+#    'echo "switch -pthread is replace(-lpthread) positional(linker);" >> %(installdir)s/linux86-64/%(version)s/bin/siterc',
+#]
+
+# this bundle serves as a compiler-only toolchain, so it should be marked as compiler (important for HMNS)
+moduleclass = 'compiler'
diff --git a/Golden_Repo/2019a/p/PLUMED/PLUMED-2.5.3-intel-2019a.eb b/Golden_Repo/2019a/p/PLUMED/PLUMED-2.5.3-intel-2019a.eb
new file mode 100644
index 000000000..5ad309757
--- /dev/null
+++ b/Golden_Repo/2019a/p/PLUMED/PLUMED-2.5.3-intel-2019a.eb
@@ -0,0 +1,50 @@
+# by Ward Poelmans <wpoely86@gmail.com>
+#
+easyblock = 'ConfigureMake'
+
+name = 'PLUMED'
+version = '2.5.3'
+
+homepage = 'http://www.plumed.org'
+description = """PLUMED is an open source library for free energy calculations in molecular systems which
+ works together with some of the most popular molecular dynamics engines. Free energy calculations can be 
+ performed as a function of many order parameters with a particular  focus on biological problems, using
+ state of the art methods such as metadynamics, umbrella sampling and Jarzynski-equation based steered MD.
+ The software, written in C++, can be easily interfaced with both fortran and C/C++ codes.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'intel', 'version': '2019a'}
+toolchainopts = {'usempi': 'True'}
+
+source_urls = ['https://github.com/plumed/plumed2/archive/']
+sources = ['v%(version)s.tar.gz']
+
+patches = [
+    #'plumed_2.3.3_gromacs_2016.4.patch',
+    # Plumed 2.5.1 caused an assertion error in BFD with ld -r -o (binutils 2.31.1). ld.gold seems to link fine.
+    'plumed_ld.gold.patch',
+]
+
+dependencies = [
+    ('zlib', '1.2.11'),
+    ('GSL', '2.5'),
+    ('libmatheval', '1.1.11'),
+]
+
+preconfigopts = 'env FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" '
+configopts = ' --exec-prefix=%(installdir)s --enable-gsl --enable-modules=all'
+prebuildopts = 'source sourceme.sh && '
+
+sanity_check_paths = {
+    'files': ['bin/plumed', 'lib/libplumedKernel.%s' % SHLIB_EXT, 'lib/libplumed.%s' % SHLIB_EXT],
+    'dirs': ['lib/plumed']
+}
+
+modextrapaths = {
+    'PLUMED_KERNEL': 'lib/libplumedKernel.%s' % SHLIB_EXT,
+    'PLUMED_ROOT': 'lib/plumed',
+}
+
+moduleclass = 'chem'
diff --git a/Golden_Repo/2019a/p/PLUMED/PLUMED-2.5.3-intel-para-2019a.eb b/Golden_Repo/2019a/p/PLUMED/PLUMED-2.5.3-intel-para-2019a.eb
new file mode 100644
index 000000000..bb7f157e3
--- /dev/null
+++ b/Golden_Repo/2019a/p/PLUMED/PLUMED-2.5.3-intel-para-2019a.eb
@@ -0,0 +1,50 @@
+# by Ward Poelmans <wpoely86@gmail.com>
+#
+easyblock = 'ConfigureMake'
+
+name = 'PLUMED'
+version = '2.5.3'
+
+homepage = 'http://www.plumed.org'
+description = """PLUMED is an open source library for free energy calculations in molecular systems which
+ works together with some of the most popular molecular dynamics engines. Free energy calculations can be 
+ performed as a function of many order parameters with a particular  focus on biological problems, using
+ state of the art methods such as metadynamics, umbrella sampling and Jarzynski-equation based steered MD.
+ The software, written in C++, can be easily interfaced with both fortran and C/C++ codes.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'intel-para', 'version': '2019a'}
+toolchainopts = {'usempi': 'True'}
+
+source_urls = ['https://github.com/plumed/plumed2/archive/']
+sources = ['v%(version)s.tar.gz']
+
+patches = [
+    #'plumed_2.3.3_gromacs_2016.4.patch',
+    # Plumed 2.5.1 caused an assertion error in BFD with ld -r -o (binutils 2.31.1). ld.gold seems to link fine.
+    'plumed_ld.gold.patch',
+]
+
+dependencies = [
+    ('zlib', '1.2.11'),
+    ('GSL', '2.5'),
+    ('libmatheval', '1.1.11'),
+]
+
+preconfigopts = 'env FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" '
+configopts = ' --exec-prefix=%(installdir)s --enable-gsl --enable-modules=all'
+prebuildopts = 'source sourceme.sh && '
+
+sanity_check_paths = {
+    'files': ['bin/plumed', 'lib/libplumedKernel.%s' % SHLIB_EXT, 'lib/libplumed.%s' % SHLIB_EXT],
+    'dirs': ['lib/plumed']
+}
+
+modextrapaths = {
+    'PLUMED_KERNEL': 'lib/libplumedKernel.%s' % SHLIB_EXT,
+    'PLUMED_ROOT': 'lib/plumed',
+}
+
+moduleclass = 'chem'
diff --git a/Golden_Repo/2019a/p/pscom/pscom-5.2-default.eb b/Golden_Repo/2019a/p/pscom/pscom-5.2-default.eb
new file mode 100644
index 000000000..17608f59a
--- /dev/null
+++ b/Golden_Repo/2019a/p/pscom/pscom-5.2-default.eb
@@ -0,0 +1,36 @@
+easyblock = 'ConfigureMake'
+
+name = 'pscom'
+# Create drop-in replacement version that ensures over-riding behaviour
+version = "5.2-default"
+realversion = "5.3.0-1_115_g12720ef_gateway"
+homepage = 'http://www.par-tec.com'
+description = """ParaStation is a robust and efficient cluster middleware, consisting of a high-performance
+communication layer (MPI) and a sophisticated management layer.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': ''}
+
+sources = ['%%(name)s-%s.tar.gz' % realversion]
+
+builddependencies = [
+    ('popt', '1.16'),
+]
+
+sanity_check_paths = {
+    'files': ['include/%(name)s.h',
+        ('lib/libpscom.so', 'lib64/libpscom.so'),
+        ('lib/libpscom4ucp.so', 'lib64/libpscom4ucp.so'),
+        ('lib/libpscom4openib.so', 'lib64/libpscom4openib.so'),
+        ('lib/libpscom4gateway.so', 'lib64/libpscom4gateway.so'),
+    ],
+    'dirs': [],
+}
+
+modextravars = {
+    'PSCOMVERSION': '%s' % realversion,
+}
+
+moduleclass = 'tools'
diff --git a/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-UCX-RC.eb b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-UCX-RC.eb
new file mode 100644
index 000000000..8eff75b00
--- /dev/null
+++ b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-UCX-RC.eb
@@ -0,0 +1,23 @@
+easyblock = 'SystemBundle'
+
+name = 'psmpi-settings'
+version = '5.2'
+versionsuffix = 'UCX-RC'
+
+homepage = ''
+description = """This is a module to load the ParaStationMPI settings to be used with UCX and RC as TL"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+modextravars = {
+    'PSP_UCP': '1',
+    'UCX_TLS': 'rc_x,self,sm',
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-UCX-UD.eb b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-UCX-UD.eb
new file mode 100644
index 000000000..2681244b0
--- /dev/null
+++ b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-UCX-UD.eb
@@ -0,0 +1,23 @@
+easyblock = 'SystemBundle'
+
+name = 'psmpi-settings'
+version = '5.2'
+versionsuffix = 'UCX-UD'
+
+homepage = ''
+description = """This is a module to load the ParaStationMPI settings to be used with UCX and UD as TL"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+modextravars = {
+    'PSP_UCP': '1',
+    'UCX_TLS': 'ud_x,self,sm',
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-default.eb b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-default.eb
new file mode 100644
index 000000000..34e850105
--- /dev/null
+++ b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-default.eb
@@ -0,0 +1,18 @@
+easyblock = 'SystemBundle'
+
+name = 'psmpi-settings'
+version = '5.2'
+versionsuffix = 'default'
+
+homepage = ''
+description = """This is a module to load the default ParaStationMPI configuration"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-large-job-hybrid.eb b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-large-job-hybrid.eb
new file mode 100644
index 000000000..b8470f8f1
--- /dev/null
+++ b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-large-job-hybrid.eb
@@ -0,0 +1,23 @@
+easyblock = 'SystemBundle'
+
+name = 'psmpi-settings'
+version = '5.2'
+versionsuffix = 'large-job-hybrid'
+
+homepage = ''
+description = """This is a module to load the ParaStationMPI settings to be used for large scale hybrid jobs"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+modextravars = {
+    'PSP_UCP': '1',
+    'UCX_TLS': 'ud_x,self,sm',
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-large-job-mpi.eb b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-large-job-mpi.eb
new file mode 100644
index 000000000..a9a03ace9
--- /dev/null
+++ b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-large-job-mpi.eb
@@ -0,0 +1,24 @@
+easyblock = 'SystemBundle'
+
+name = 'psmpi-settings'
+version = '5.2'
+versionsuffix = 'large-job-mpi'
+
+homepage = ''
+description = """This is a module to load the ParaStationMPI settings to be used for large scale MPI jobs"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+modextravars = {
+    'PSP_UCP': '1',
+    'UCX_TLS': 'ud_x,self,sm',
+    'PSP_SHM': '0',
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-UCX-RC.eb b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-UCX-RC.eb
new file mode 100644
index 000000000..a5ef4cee9
--- /dev/null
+++ b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-UCX-RC.eb
@@ -0,0 +1,23 @@
+easyblock = 'SystemBundle'
+
+name = 'psmpi-settings'
+version = '5.2-mt'
+versionsuffix = 'UCX-RC'
+
+homepage = ''
+description = """This is a module to load the ParaStationMPI settings to be used with UCX and RC as TL"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+modextravars = {
+    'PSP_UCP': '1',
+    'UCX_TLS': 'rc_x,self,sm',
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-UCX-UD.eb b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-UCX-UD.eb
new file mode 100644
index 000000000..6831ae9ba
--- /dev/null
+++ b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-UCX-UD.eb
@@ -0,0 +1,23 @@
+easyblock = 'SystemBundle'
+
+name = 'psmpi-settings'
+version = '5.2-mt'
+versionsuffix = 'UCX-UD'
+
+homepage = ''
+description = """This is a module to load the ParaStationMPI settings to be used with UCX and UD as TL"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+modextravars = {
+    'PSP_UCP': '1',
+    'UCX_TLS': 'ud_x,self,sm',
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-default.eb b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-default.eb
new file mode 100644
index 000000000..252f93b24
--- /dev/null
+++ b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-default.eb
@@ -0,0 +1,18 @@
+easyblock = 'SystemBundle'
+
+name = 'psmpi-settings'
+version = '5.2-mt'
+versionsuffix = 'default'
+
+homepage = ''
+description = """This is a module to load the default ParaStationMPI configuration"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-large-job-hybrid.eb b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-large-job-hybrid.eb
new file mode 100644
index 000000000..4679b0af1
--- /dev/null
+++ b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-large-job-hybrid.eb
@@ -0,0 +1,23 @@
+easyblock = 'SystemBundle'
+
+name = 'psmpi-settings'
+version = '5.2-mt'
+versionsuffix = 'large-job-hybrid'
+
+homepage = ''
+description = """This is a module to load the ParaStationMPI settings to be used for large scale hybrid jobs"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+modextravars = {
+    'PSP_UCP': '1',
+    'UCX_TLS': 'ud_x,self,sm',
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-large-job-mpi.eb b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-large-job-mpi.eb
new file mode 100644
index 000000000..0be2e5422
--- /dev/null
+++ b/Golden_Repo/2019a/p/psmpi-settings/psmpi-settings-5.2-mt-large-job-mpi.eb
@@ -0,0 +1,24 @@
+easyblock = 'SystemBundle'
+
+name = 'psmpi-settings'
+version = '5.2-mt'
+versionsuffix = 'large-job-mpi'
+
+homepage = ''
+description = """This is a module to load the ParaStationMPI settings to be used for large scale MPI jobs"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'dummy', 'version': 'dummy'}
+
+source_urls = []
+
+sources = []
+
+modextravars = {
+    'PSP_UCP': '1',
+    'UCX_TLS': 'ud_x,self,sm',
+    'PSP_SHM': '0',
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/p/psmpi/psmpi-5.2.2-1-GCC-8.3.0.eb b/Golden_Repo/2019a/p/psmpi/psmpi-5.2.2-1-GCC-8.3.0.eb
index 532ee89df..4b59481a5 100644
--- a/Golden_Repo/2019a/p/psmpi/psmpi-5.2.2-1-GCC-8.3.0.eb
+++ b/Golden_Repo/2019a/p/psmpi/psmpi-5.2.2-1-GCC-8.3.0.eb
@@ -15,11 +15,11 @@ sources = ['%(version)s.tar.gz']
 source_urls = ['https://github.com/ParaStation/psmpi/archive/']
 
 dependencies = [
-    ('pscom', 'Default', '', True),
+    ('pscom', '5.2-default', '', True),
     # This should be a temporary fix. UCX should be a dependency of pscom. But at the moment, pscom is in "dummy" and
     # UCX is in GCCcore, so pscom can't load UCX. As an alternative to pull pscom high in the hierarchy during production
     # we load UCX here to override the system one
-    ('UCX', '1.5.1'),
+    ('UCX', '1.6.1'),
 ]
 
 patches = [
@@ -34,6 +34,11 @@ threaded = False
 modaltsoftname = 'ParaStationMPI'
 
 # Add a family for our naming scheme
-modluafooter = 'family("mpi")'
+modluafooter = '''
+family("mpi")
+if not ( isloaded("mpi-settings/default") ) then
+    load("mpi-settings/default")
+end
+'''
 
 moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0-mt.eb b/Golden_Repo/2019a/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0-mt.eb
index def613909..bc908379b 100644
--- a/Golden_Repo/2019a/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0-mt.eb
+++ b/Golden_Repo/2019a/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0-mt.eb
@@ -16,11 +16,11 @@ sources = ['%(version)s.tar.gz']
 source_urls = ['https://github.com/ParaStation/psmpi/archive/']
 
 dependencies = [
-    ('pscom', 'Default', '', True),
+    ('pscom', '5.2-default', '', True),
     # This should be a temporary fix. UCX should be a dependency of pscom. But at the moment, pscom is in "dummy" and
     # UCX is in GCCcore, so pscom can't load UCX. As an alternative to pull pscom high in the hierarchy during production
     # we load UCX here to override the system one
-    ('UCX', '1.5.1'),
+    ('UCX', '1.6.1'),
 ]
 
 patches = [
@@ -35,6 +35,11 @@ threaded = True
 modaltsoftname = 'ParaStationMPI'
 
 # Add a family for our naming scheme
-modluafooter = 'family("mpi")'
+modluafooter = '''
+family("mpi")
+if not ( isloaded("mpi-settings/default") ) then
+    load("mpi-settings/default")
+end
+'''
 
 moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0.eb b/Golden_Repo/2019a/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0.eb
index 7ea027cad..d8c098dc9 100644
--- a/Golden_Repo/2019a/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0.eb
+++ b/Golden_Repo/2019a/p/psmpi/psmpi-5.2.2-1-iccifort-2019.3.199-GCC-8.3.0.eb
@@ -15,11 +15,11 @@ sources = ['%(version)s.tar.gz']
 source_urls = ['https://github.com/ParaStation/psmpi/archive/']
 
 dependencies = [
-    ('pscom', 'Default', '', True),
+    ('pscom', '5.2-default', '', True),
     # This should be a temporary fix. UCX should be a dependency of pscom. But at the moment, pscom is in "dummy" and
     # UCX is in GCCcore, so pscom can't load UCX. As an alternative to pull pscom high in the hierarchy during production
     # we load UCX here to override the system one
-    ('UCX', '1.5.1'),
+    ('UCX', '1.6.1'),
 ]
 
 patches = [
@@ -34,6 +34,11 @@ threaded = False
 modaltsoftname = 'ParaStationMPI'
 
 # Add a family for our naming scheme
-modluafooter = 'family("mpi")'
+modluafooter = '''
+family("mpi")
+if not ( isloaded("mpi-settings/default") ) then
+    load("mpi-settings/default")
+end
+'''
 
 moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/p/psmpi/psmpi-5.2.2-1-iccifort-2019.5.281-GCC-8.3.0.eb b/Golden_Repo/2019a/p/psmpi/psmpi-5.2.2-1-iccifort-2019.5.281-GCC-8.3.0.eb
new file mode 100644
index 000000000..3b7d8c9a1
--- /dev/null
+++ b/Golden_Repo/2019a/p/psmpi/psmpi-5.2.2-1-iccifort-2019.5.281-GCC-8.3.0.eb
@@ -0,0 +1,44 @@
+name = 'psmpi'
+version = '5.2.2-1'
+
+homepage = 'https://github.com/ParaStation/psmpi2'
+description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation,
+based on MPICH v3. It provides extra low level communication libraries and integration with 
+various batch systems for tighter process control.
+"""
+
+site_contacts = 'sc@fz-juelich.de'
+
+toolchain = {'name': 'iccifort', 'version': '2019.5.281-GCC-8.3.0'}
+
+sources = ['%(version)s.tar.gz']
+source_urls = ['https://github.com/ParaStation/psmpi/archive/']
+
+dependencies = [
+    ('pscom', '5.2-default', '', True),
+    # This should be a temporary fix. UCX should be a dependency of pscom. But at the moment, pscom is in "dummy" and
+    # UCX is in GCCcore, so pscom can't load UCX. As an alternative to pull pscom high in the hierarchy during production
+    # we load UCX here to override the system one
+    ('UCX', '1.6.1'),
+]
+
+patches = [
+    'psmpi_shebang.patch'
+]
+
+mpich_opts = '--enable-static'
+
+threaded = False
+
+# use a more explicit module name to help our naming scheme
+modaltsoftname = 'ParaStationMPI'
+
+# Add a family for our naming scheme
+modluafooter = '''
+family("mpi")
+if not ( isloaded("mpi-settings/default") ) then
+    load("mpi-settings/default")
+end
+'''
+
+moduleclass = 'mpi'
diff --git a/Golden_Repo/2019a/u/UCX/UCX-1.5.1-GCCcore-8.3.0.eb b/Golden_Repo/2019a/u/UCX/UCX-1.5.1-GCCcore-8.3.0.eb
index 851f97d81..ded8a0c60 100644
--- a/Golden_Repo/2019a/u/UCX/UCX-1.5.1-GCCcore-8.3.0.eb
+++ b/Golden_Repo/2019a/u/UCX/UCX-1.5.1-GCCcore-8.3.0.eb
@@ -23,14 +23,20 @@ builddependencies = [
     ('pkg-config', '0.29.2'),
 ]
 
-# needed for --with-verbs
-osdependencies = [('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel')]
+osdependencies = [
+    # needed for --with-verbs
+    ('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel'),
+    # needed for mlx5 acceleration
+    ('libmlx5-devel')
+]
 
 dependencies = [
     ('numactl', '2.0.12'),
     ('CUDA', '10.1.105', '', True),
 ]
 
+preconfigopts = 'PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib64/pkgconfig '
+
 configopts  = '--with-verbs ' # Build OpenFabrics support, adding DIR/include,  DIR/lib, and DIR/lib64 to the search path for headers and libraries
 configopts += '--without-java '
 configopts += '--disable-doxygen-doc '
diff --git a/Golden_Repo/2019a/u/UCX/UCX-1.6.1-GCCcore-8.3.0.eb b/Golden_Repo/2019a/u/UCX/UCX-1.6.1-GCCcore-8.3.0.eb
new file mode 100644
index 000000000..e4d760163
--- /dev/null
+++ b/Golden_Repo/2019a/u/UCX/UCX-1.6.1-GCCcore-8.3.0.eb
@@ -0,0 +1,70 @@
+easyblock = 'ConfigureMake'
+
+name = 'UCX'
+version = '1.6.1'
+versionsuffix = ''
+
+homepage = 'http://www.openucx.org'
+
+description = """Unified Communication X
+An open-source production grade communication framework for data centric
+and high-performance applications
+"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'GCCcore', 'version': '8.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s%(versionsuffix)s']
+sources = ['%(namelower)s-%(version)s.tar.gz']
+
+builddependencies = [
+    ('binutils', '2.32'),
+    ('pkg-config', '0.29.2'),
+]
+
+osdependencies = [
+    # needed for --with-verbs
+    ('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel'),
+    # needed for mlx5 acceleration
+    ('libmlx5-devel')
+]
+
+dependencies = [
+    ('numactl', '2.0.12'),
+#    ('CUDA', '10.1.105', '', True),
+]
+
+preconfigopts = 'PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib64/pkgconfig '
+
+configopts  = '--with-verbs ' # Build OpenFabrics support, adding DIR/include,  DIR/lib, and DIR/lib64 to the search path for headers and libraries
+configopts += '--without-java '
+configopts += '--disable-doxygen-doc '
+
+configopts += '--enable-optimizations ' # Enable machine-specific optimizations, default: NO
+#configopts += '--enable-tuning '       # Enable parameter tuning in run-time, default: NO
+#configopts += '--enable-mt '           # Enable thread support in UCP and UCT, default: NO
+configopts += '--disable-debug '
+configopts += '--disable-logging '
+configopts += '--disable-assertions '
+configopts += '--disable-params-check '
+configopts += '--disable-dependency-tracking '
+#configopts += '--with-cuda=$EBROOTCUDA '
+
+configopts += '--enable-cma '           # Enable Cross Memory Attach - allow MPI programs doing intra-node communication to do a single copy of the message rather than double. https://lwn.net/Articles/405284/
+
+configopts += '--with-rc '              # Compile with IB Reliable Connection support
+configopts += '--with-ud '              # Compile with IB Unreliable Datagram support
+configopts += '--with-dc '              # Compile with IB Dynamic Connection support
+configopts += '--with-cm '              # Compile with IB Connection Manager support
+configopts += '--with-mlx5-dv '         # Compile with mlx5 Direct Verbs support. Direct Verbs(DV) support provides additional acceleration capabilities that are not available in a regular mode.
+configopts += '--with-ib-hw-tm '        # Compile with IB Tag Matching support
+configopts += '--with-dm '              # Compile with Device Memory support
+
+sanity_check_paths = {
+    'files': ['bin/ucx_info', 'bin/ucx_perftest', 'bin/ucx_read_profile'],
+    'dirs': ['include', 'lib', 'share']
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/u/UCX/UCX-1.7.0-GCCcore-8.3.0.eb b/Golden_Repo/2019a/u/UCX/UCX-1.7.0-GCCcore-8.3.0.eb
new file mode 100644
index 000000000..8b97689f5
--- /dev/null
+++ b/Golden_Repo/2019a/u/UCX/UCX-1.7.0-GCCcore-8.3.0.eb
@@ -0,0 +1,70 @@
+easyblock = 'ConfigureMake'
+
+name = 'UCX'
+version = '1.7.0'
+versionsuffix = ''
+
+homepage = 'http://www.openucx.org'
+
+description = """Unified Communication X
+An open-source production grade communication framework for data centric
+and high-performance applications
+"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'GCCcore', 'version': '8.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s%(versionsuffix)s']
+sources = ['%(namelower)s-%(version)s.tar.gz']
+
+builddependencies = [
+    ('binutils', '2.32'),
+    ('pkg-config', '0.29.2'),
+]
+
+osdependencies = [
+    # needed for --with-verbs
+    ('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel'),
+    # needed for mlx5 acceleration
+    ('libmlx5-devel')
+]
+
+dependencies = [
+    ('numactl', '2.0.12'),
+    ('CUDA', '10.1.105', '', True),
+]
+
+preconfigopts = 'PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib64/pkgconfig '
+
+configopts  = '--with-verbs ' # Build OpenFabrics support, adding DIR/include,  DIR/lib, and DIR/lib64 to the search path for headers and libraries
+configopts += '--without-java '
+configopts += '--disable-doxygen-doc '
+
+configopts += '--enable-optimizations ' # Enable machine-specific optimizations, default: NO
+#configopts += '--enable-tuning '       # Enable parameter tuning in run-time, default: NO
+#configopts += '--enable-mt '           # Enable thread support in UCP and UCT, default: NO
+configopts += '--disable-debug '
+configopts += '--disable-logging '
+configopts += '--disable-assertions '
+configopts += '--disable-params-check '
+configopts += '--disable-dependency-tracking '
+configopts += '--with-cuda=$EBROOTCUDA '
+
+configopts += '--enable-cma '           # Enable Cross Memory Attach - allow MPI programs doing intra-node communication to do a single copy of the message rather than double. https://lwn.net/Articles/405284/
+
+configopts += '--with-rc '              # Compile with IB Reliable Connection support
+configopts += '--with-ud '              # Compile with IB Unreliable Datagram support
+configopts += '--with-dc '              # Compile with IB Dynamic Connection support
+configopts += '--with-cm '              # Compile with IB Connection Manager support
+configopts += '--with-mlx5-dv '         # Compile with mlx5 Direct Verbs support. Direct Verbs(DV) support provides additional acceleration capabilities that are not available in a regular mode.
+configopts += '--with-ib-hw-tm '        # Compile with IB Tag Matching support
+configopts += '--with-dm '              # Compile with Device Memory support
+
+sanity_check_paths = {
+    'files': ['bin/ucx_info', 'bin/ucx_perftest', 'bin/ucx_read_profile'],
+    'dirs': ['include', 'lib', 'share']
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/u/UCX/UCX-1.7.0-rc1-GCCcore-8.3.0.eb b/Golden_Repo/2019a/u/UCX/UCX-1.7.0-rc1-GCCcore-8.3.0.eb
new file mode 100644
index 000000000..868b242b7
--- /dev/null
+++ b/Golden_Repo/2019a/u/UCX/UCX-1.7.0-rc1-GCCcore-8.3.0.eb
@@ -0,0 +1,70 @@
+easyblock = 'ConfigureMake'
+
+name = 'UCX'
+version = '1.7.0'
+versionsuffix = '-rc1'
+
+homepage = 'http://www.openucx.org'
+
+description = """Unified Communication X
+An open-source production grade communication framework for data centric
+and high-performance applications
+"""
+
+site_contacts = 'd.alvarez@fz-juelich.de'
+
+toolchain = {'name': 'GCCcore', 'version': '8.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s%(versionsuffix)s']
+sources = ['%(namelower)s-%(version)s.tar.gz']
+
+builddependencies = [
+    ('binutils', '2.32'),
+    ('pkg-config', '0.29.2'),
+]
+
+osdependencies = [
+    # needed for --with-verbs
+    ('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel'),
+    # needed for mlx5 acceleration
+    ('libmlx5-devel')
+]
+
+dependencies = [
+    ('numactl', '2.0.12'),
+    ('CUDA', '10.1.105', '', True),
+]
+
+preconfigopts = 'PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib64/pkgconfig '
+
+configopts  = '--with-verbs ' # Build OpenFabrics support, adding DIR/include,  DIR/lib, and DIR/lib64 to the search path for headers and libraries
+configopts += '--without-java '
+configopts += '--disable-doxygen-doc '
+
+configopts += '--enable-optimizations ' # Enable machine-specific optimizations, default: NO
+#configopts += '--enable-tuning '       # Enable parameter tuning in run-time, default: NO
+#configopts += '--enable-mt '           # Enable thread support in UCP and UCT, default: NO
+configopts += '--disable-debug '
+configopts += '--disable-logging '
+configopts += '--disable-assertions '
+configopts += '--disable-params-check '
+configopts += '--disable-dependency-tracking '
+configopts += '--with-cuda=$EBROOTCUDA '
+
+configopts += '--enable-cma '           # Enable Cross Memory Attach - allow MPI programs doing intra-node communication to do a single copy of the message rather than double. https://lwn.net/Articles/405284/
+
+configopts += '--with-rc '              # Compile with IB Reliable Connection support
+configopts += '--with-ud '              # Compile with IB Unreliable Datagram support
+configopts += '--with-dc '              # Compile with IB Dynamic Connection support
+configopts += '--with-cm '              # Compile with IB Connection Manager support
+configopts += '--with-mlx5-dv '         # Compile with mlx5 Direct Verbs support. Direct Verbs(DV) support provides additional acceleration capabilities that are not available in a regular mode.
+configopts += '--with-ib-hw-tm '        # Compile with IB Tag Matching support
+configopts += '--with-dm '              # Compile with Device Memory support
+
+sanity_check_paths = {
+    'files': ['bin/ucx_info', 'bin/ucx_perftest', 'bin/ucx_read_profile'],
+    'dirs': ['include', 'lib', 'share']
+}
+
+moduleclass = 'system'
diff --git a/Golden_Repo/2019a/u/UCX/UCX-libibcm.patch b/Golden_Repo/2019a/u/UCX/UCX-libibcm.patch
new file mode 100644
index 000000000..5eeab392f
--- /dev/null
+++ b/Golden_Repo/2019a/u/UCX/UCX-libibcm.patch
@@ -0,0 +1,20 @@
+--- configure.orig	2020-01-29 14:26:36.746557632 +0100
++++ configure	2020-01-29 14:27:03.380042272 +0100
+@@ -27343,7 +27343,7 @@
+   $as_echo_n "(cached) " >&6
+ else
+   ac_check_lib_save_LIBS=$LIBS
+-LIBS="-libcm  $LIBS"
++LIBS="-l:libibcm.so.1  $LIBS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ 
+@@ -27374,7 +27374,7 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ibcm_ib_cm_send_req" >&5
+ $as_echo "$ac_cv_lib_ibcm_ib_cm_send_req" >&6; }
+ if test "x$ac_cv_lib_ibcm_ib_cm_send_req" = xyes; then :
+-  IBCM_LIBS=-libcm
++  IBCM_LIBS=-l:libibcm.so.1
+ 
+                      uct_ib_modules="${uct_ib_modules}:cm"
+                      cm_happy="yes"
-- 
GitLab