From e767c75b7d1b38927b2f184eef9ba63478397388 Mon Sep 17 00:00:00 2001
From: Sebastian Achilles <s.achilles@fz-juelich.de>
Date: Fri, 11 Nov 2022 11:26:04 +0100
Subject: [PATCH] add nvompic toolchain

---
 Golden_Repo/n/nvompic/nvompic-2022a.eb        | 19 ++++++
 .../o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.9.eb     | 67 +++++++++++++++++++
 2 files changed, 86 insertions(+)
 create mode 100644 Golden_Repo/n/nvompic/nvompic-2022a.eb
 create mode 100644 Golden_Repo/o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.9.eb

diff --git a/Golden_Repo/n/nvompic/nvompic-2022a.eb b/Golden_Repo/n/nvompic/nvompic-2022a.eb
new file mode 100644
index 000000000..85a9b9a5a
--- /dev/null
+++ b/Golden_Repo/n/nvompic/nvompic-2022a.eb
@@ -0,0 +1,19 @@
+easyblock = 'Toolchain'
+
+name = 'nvompic'
+version = '2022a'
+
+homepage = '(none)'
+description = 'NVHPC based compiler toolchain, including OpenMPI for MPI support.'
+
+toolchain = SYSTEM
+
+local_compiler = ('NVHPC', '22.9')
+
+dependencies = [
+    local_compiler,
+    ('CUDA', '11.7', '', SYSTEM),
+    ('OpenMPI', '4.1.4', '', local_compiler),
+]
+
+moduleclass = 'toolchain'
diff --git a/Golden_Repo/o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.9.eb b/Golden_Repo/o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.9.eb
new file mode 100644
index 000000000..5b3d0821b
--- /dev/null
+++ b/Golden_Repo/o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.9.eb
@@ -0,0 +1,67 @@
+name = 'OpenMPI'
+version = '4.1.4'
+
+homepage = 'https://www.open-mpi.org/'
+description = """The Open MPI Project is an open source MPI-3 implementation."""
+
+toolchain = {'name': 'NVHPC', 'version': '22.9'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads']
+sources = [SOURCELOWER_TAR_BZ2]
+patches = [
+    'OpenMPI-4.1.1_opal-datatype-cuda-performance.patch',
+]
+checksums = [
+    '92912e175fd1234368c8730c03f4996fe5942e7479bb1d10059405e7f2b3930d',  # openmpi-4.1.4.tar.bz2
+    # OpenMPI-4.1.1_opal-datatype-cuda-performance.patch
+    'b767c7166cf0b32906132d58de5439c735193c9fd09ec3c5c11db8d5fa68750e',
+]
+
+osdependencies = [
+    # needed for --with-verbs
+    ('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel'),
+    # needed for --with-pmix
+    ('pmix-devel'),
+]
+
+builddependencies = [
+    ('pkgconf', '1.8.0'),
+    ('Perl', '5.34.1'),
+    ('Autotools', '20220317'),
+]
+
+dependencies = [
+    ('zlib', '1.2.12'),
+    ('hwloc', '2.7.1'),
+    ('UCX', 'default'),
+    ('CUDA', '11.7', '', SYSTEM),
+    ('libevent', '2.1.12'),
+    ('PMIx', '3.2.3'),  # We rely on this version since it is the newest supported by psmgmt
+    ('UCC', 'default'),
+]
+
+# Update configure to include changes from the "internal-cuda" patch
+# by running a subset of autogen.pl sufficient to achieve this
+# without doing the full, long-running regeneration.
+preconfigopts = ' && '.join([
+    'cd config',
+    'autom4te --language=m4sh opal_get_version.m4sh -o opal_get_version.sh',
+    'cd ..',
+    'autoconf',
+    'autoheader',
+    'aclocal',
+    'automake',
+    ''
+])
+
+configopts = '--without-orte '
+configopts += '--without-psm2 '
+configopts += '--disable-oshmem '
+configopts += '--with-ime=/opt/ddn/ime '
+configopts += '--with-gpfs '
+
+# to enable SLURM integration (site-specific)
+configopts += '--with-slurm --with-pmix=external --with-libevent=external --with-ompi-pmix-rte'
+
+moduleclass = 'mpi'
-- 
GitLab