Repository: eth-cscs/alps-uenv
Pull request #201: scorep/9
Author: login: jgphpc
Created: 2025-03-20T18:02:37Z | Merged: 2025-05-02T11:46:05Z



Diff:
diff --git a/config.yaml b/config.yaml
index dbc5e4a4a..c2b9449b3 100644
--- a/config.yaml
+++ b/config.yaml
@@ -353,6 +353,21 @@ uenvs:
       recipes:
         a100: v7.5/a100
       develop: True
+  scorep:
+    "9.0-gcc12":
+      recipes:
+        gh200: 9.0-gcc12/gh200
+      deploy:
+        daint: [gh200]
+        santis: [gh200]
+        clariden: [gh200]
+    "9.0-gcc13":
+      recipes:
+        gh200: 9.0-gcc13/gh200
+      deploy:
+        daint: [gh200]
+        santis: [gh200]
+        clariden: [gh200]
   vasp:
     "v6.4.2":
       recipes:
diff --git a/recipes/scorep/9.0-gcc12/gh200/compilers.yaml b/recipes/scorep/9.0-gcc12/gh200/compilers.yaml
new file mode 100644
index 000000000..c3bc6ac6e
--- /dev/null
+++ b/recipes/scorep/9.0-gcc12/gh200/compilers.yaml
@@ -0,0 +1,5 @@
+bootstrap:
+  spec: gcc@12
+gcc:
+  specs:
+  - gcc@12
diff --git a/recipes/scorep/9.0-gcc12/gh200/config.yaml b/recipes/scorep/9.0-gcc12/gh200/config.yaml
new file mode 100644
index 000000000..e04c3f3e1
--- /dev/null
+++ b/recipes/scorep/9.0-gcc12/gh200/config.yaml
@@ -0,0 +1,6 @@
+name: scorep
+store: /user-tools
+spack:
+  repo: https://github.com/spack/spack.git
+  commit: v0.23.1
+modules: True
diff --git a/recipes/scorep/9.0-gcc12/gh200/environments.yaml b/recipes/scorep/9.0-gcc12/gh200/environments.yaml
new file mode 100644
index 000000000..9a574d4a1
--- /dev/null
+++ b/recipes/scorep/9.0-gcc12/gh200/environments.yaml
@@ -0,0 +1,16 @@
+scorep:
+  compiler:
+  - toolchain: gcc
+    spec: gcc@12
+  unify: when_possible
+  mpi:
+    spec: cray-mpich@8.1.30
+    gpu: cuda
+  specs:
+  # keeping for reference:  
+  # - cmake
+  # - hdf5 +cxx +hl ~fortran
+  - scalasca@2.6.2 ^scorep@9.0 +cuda +mpi ~papi +gotcha +unwind ^libunwind ^binutils +libiberty ^cuda@12
+  views:
+    default:
+      link: all
diff --git a/recipes/scorep/9.0-gcc12/gh200/extra/reframe.yaml b/recipes/scorep/9.0-gcc12/gh200/extra/reframe.yaml
new file mode 100644
index 000000000..2b64b13d8
--- /dev/null
+++ b/recipes/scorep/9.0-gcc12/gh200/extra/reframe.yaml
@@ -0,0 +1,9 @@
+default:
+  features:
+    - scorep
+    - scalasca
+  cc: mpicc
+  cxx: mpic++
+  ftn: mpifort
+  views:
+    - default
diff --git a/recipes/scorep/9.0-gcc12/gh200/modules.yaml b/recipes/scorep/9.0-gcc12/gh200/modules.yaml
new file mode 100644
index 000000000..9c8a373b1
--- /dev/null
+++ b/recipes/scorep/9.0-gcc12/gh200/modules.yaml
@@ -0,0 +1,21 @@
+modules:
+  prefix_inspections:
+    bin:
+      - PATH
+    lib:
+      - LD_LIBRARY_PATH
+    lib64:
+      - LD_LIBRARY_PATH
+
+  default:
+    arch_folder: false
+    roots:
+      tcl: /user-tools/modules
+    tcl:
+      all:
+        autoload: none
+      hash_length: 0
+      exclude_implicits: true
+      exclude: ['%gcc@7.5.0', 'gcc %gcc@7.5.0']
+      projections:
+        all: '{name}/{version}'
diff --git a/recipes/scorep/9.0-gcc12/gh200/repo b/recipes/scorep/9.0-gcc12/gh200/repo
new file mode 120000
index 000000000..a44667c92
--- /dev/null
+++ b/recipes/scorep/9.0-gcc12/gh200/repo
@@ -0,0 +1 @@
+../../common/repo/
\ No newline at end of file
diff --git a/recipes/scorep/9.0-gcc13/gh200/compilers.yaml b/recipes/scorep/9.0-gcc13/gh200/compilers.yaml
new file mode 100644
index 000000000..b39352fad
--- /dev/null
+++ b/recipes/scorep/9.0-gcc13/gh200/compilers.yaml
@@ -0,0 +1,5 @@
+bootstrap:
+  spec: gcc@12
+gcc:
+  specs:
+  - gcc@13
diff --git a/recipes/scorep/9.0-gcc13/gh200/config.yaml b/recipes/scorep/9.0-gcc13/gh200/config.yaml
new file mode 100644
index 000000000..e04c3f3e1
--- /dev/null
+++ b/recipes/scorep/9.0-gcc13/gh200/config.yaml
@@ -0,0 +1,6 @@
+name: scorep
+store: /user-tools
+spack:
+  repo: https://github.com/spack/spack.git
+  commit: v0.23.1
+modules: True
diff --git a/recipes/scorep/9.0-gcc13/gh200/environments.yaml b/recipes/scorep/9.0-gcc13/gh200/environments.yaml
new file mode 100644
index 000000000..50f04aa30
--- /dev/null
+++ b/recipes/scorep/9.0-gcc13/gh200/environments.yaml
@@ -0,0 +1,17 @@
+scorep:
+  compiler:
+  - toolchain: gcc
+    spec: gcc@13
+  unify: when_possible
+  mpi:
+    spec: cray-mpich@8.1.30
+    gpu: cuda
+  specs:
+  # keeping for reference:  
+  # - cmake  # cmake@3.30.5 fails to build because of ^openssl@3.4.0%gcc@13.3.0
+           # hdf5 depends on cmake, using my own recipe for cmake fails too
+  # - hdf5 +cxx +hl ~fortran
+  - scalasca@2.6.2 ^scorep@9.0 +cuda +mpi ~papi +gotcha +unwind ^libunwind ^binutils +libiberty ^cuda@12
+  views:
+    default:
+      link: all
diff --git a/recipes/scorep/9.0-gcc13/gh200/extra/reframe.yaml b/recipes/scorep/9.0-gcc13/gh200/extra/reframe.yaml
new file mode 100644
index 000000000..2b64b13d8
--- /dev/null
+++ b/recipes/scorep/9.0-gcc13/gh200/extra/reframe.yaml
@@ -0,0 +1,9 @@
+default:
+  features:
+    - scorep
+    - scalasca
+  cc: mpicc
+  cxx: mpic++
+  ftn: mpifort
+  views:
+    - default
diff --git a/recipes/scorep/9.0-gcc13/gh200/modules.yaml b/recipes/scorep/9.0-gcc13/gh200/modules.yaml
new file mode 100644
index 000000000..9c8a373b1
--- /dev/null
+++ b/recipes/scorep/9.0-gcc13/gh200/modules.yaml
@@ -0,0 +1,21 @@
+modules:
+  prefix_inspections:
+    bin:
+      - PATH
+    lib:
+      - LD_LIBRARY_PATH
+    lib64:
+      - LD_LIBRARY_PATH
+
+  default:
+    arch_folder: false
+    roots:
+      tcl: /user-tools/modules
+    tcl:
+      all:
+        autoload: none
+      hash_length: 0
+      exclude_implicits: true
+      exclude: ['%gcc@7.5.0', 'gcc %gcc@7.5.0']
+      projections:
+        all: '{name}/{version}'
diff --git a/recipes/scorep/9.0-gcc13/gh200/repo b/recipes/scorep/9.0-gcc13/gh200/repo
new file mode 120000
index 000000000..a44667c92
--- /dev/null
+++ b/recipes/scorep/9.0-gcc13/gh200/repo
@@ -0,0 +1 @@
+../../common/repo/
\ No newline at end of file
diff --git a/recipes/scorep/common/repo/packages/cubelib/package.py b/recipes/scorep/common/repo/packages/cubelib/package.py
new file mode 100644
index 000000000..eefdc69bc
--- /dev/null
+++ b/recipes/scorep/common/repo/packages/cubelib/package.py
@@ -0,0 +1,67 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class Cubelib(AutotoolsPackage):
+    """Component of CubeBundle: General purpose C++ library and tools"""
+
+    homepage = "https://www.scalasca.org/software/cube-4.x/download.html"
+    url = "https://apps.fz-juelich.de/scalasca/releases/cube/4.4/dist/cubelib-4.4.tar.gz"
+
+    maintainers("swat-jsc", "wrwilliams")
+
+    version("4.9", sha256="a0658f5bf3f74bf7dcf465ab6e30476751ad07eb93618801bdcf190ba3029443")
+    version("4.8.2", sha256="d6fdef57b1bc9594f1450ba46cf08f431dd0d4ae595c47e2f3454e17e4ae74f4")
+    version("4.8.1", sha256="e4d974248963edab48c5d0fc5831146d391b0ae4632cccafe840bf5f12cd80a9")
+    version("4.8", sha256="171c93ac5afd6bc74c50a9a58efdaf8589ff5cc1e5bd773ebdfb2347b77e2f68")
+    version("4.7.1", sha256="62cf33a51acd9a723fff9a4a5411cd74203e24e0c4ffc5b9e82e011778ed4f2f")
+    version("4.7", sha256="e44352c80a25a49b0fa0748792ccc9f1be31300a96c32de982b92477a8740938")
+    version("4.6", sha256="36eaffa7688db8b9304c9e48ca5dc4edc2cb66538aaf48657b9b5ccd7979385b")
+    version(
+        "4.5",
+        sha256="98f66837b4a834b1aacbcd4480a242d7a8c4a1b8dd44e02e836b8c7a4f0ffd98",
+        deprecated="true",
+    )
+    version(
+        "4.4.4",
+        sha256="adb8216ee3b7701383884417374e7ff946edb30e56640307c65465187dca7512",
+        deprecated="true",
+    )
+    version(
+        "4.4.3",
+        sha256="bcd4fa81a5ba37194e590a5d7c3e6c44b448f5e156a175837b77c21206847a8d",
+        deprecated="true",
+    )
+    version(
+        "4.4.2",
+        sha256="843335c7d238493f1b4cb8e07555ccfe99a3fa521bf162e9d8eaa6733aa1f949",
+        deprecated="true",
+    )
+    version(
+        "4.4",
+        sha256="77548e1732fa5e82b13cc8465c8a21349bf42b45a382217d2e70d18576741d5c",
+        deprecated="true",
+    )
+
+    depends_on("c", type="build")  # generated
+    depends_on("cxx", type="build")  # generated
+
+    depends_on("pkgconfig", type="build")
+    depends_on("zlib-api")
+
+    def url_for_version(self, version):
+        url = "http://apps.fz-juelich.de/scalasca/releases/cube/{0}/dist/cubelib-{1}.tar.gz"
+
+        return url.format(version.up_to(2), version)
+
+    def configure_args(self):
+        configure_args = ["--enable-shared"]
+        configure_args.append("--with-frontend-zlib=%s" % self.spec["zlib-api"].prefix.lib)
+        return configure_args
+
+    def install(self, spec, prefix):
+        make("install", parallel=False)
diff --git a/recipes/scorep/common/repo/packages/cubew/package.py b/recipes/scorep/common/repo/packages/cubew/package.py
new file mode 100644
index 000000000..f8454b668
--- /dev/null
+++ b/recipes/scorep/common/repo/packages/cubew/package.py
@@ -0,0 +1,69 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class Cubew(AutotoolsPackage):
+    """Component of CubeBundle: High performance C Writer library"""
+
+    homepage = "https://www.scalasca.org/software/cube-4.x/download.html"
+    url = "https://apps.fz-juelich.de/scalasca/releases/cube/4.4/dist/cubew-4.4.tar.gz"
+
+    maintainers("swat-jsc", "wrwilliams")
+
+    version("4.9", sha256="4ef74e81c569bf53117459cba5a1ea52b5dac739493fa83be39678840cd2acdd")
+    version("4.8.2", sha256="4f3bcf0622c2429b8972b5eb3f14d79ec89b8161e3c1cc5862ceda417d7975d2")
+    version("4.8.1", sha256="42cbd743d87c16e805c8e28e79292ab33de259f2cfba46f2682cb35c1bc032d6")
+    version("4.8", sha256="73c7f9e9681ee45d71943b66c01cfe675b426e4816e751ed2e0b670563ca4cf3")
+    version("4.7.1", sha256="0d364a4930ca876aa887ec40d12399d61a225dbab69e57379b293516d7b6db8d")
+    version("4.7", sha256="a7c7fca13e6cb252f08d4380223d7c56a8e86a67de147bcc0279ebb849c884a5")
+    version("4.6", sha256="99fe58ce7ab13061ebfbc360aedaecc28099a30636c5269a42c0cbaf57149aa8")
+    version(
+        "4.5",
+        sha256="16bd8fd864197a74ca65f7325761ad75d73d555072326e95e1338cff39f28a5c",
+        deprecated="true",
+    )
+    version(
+        "4.4.3",
+        sha256="93fff6cc1e8b0780f0171ef5302a2e1a257f99b6383fbfc1b9b82f925ceff501",
+        deprecated="true",
+    )
+    version(
+        "4.4.2",
+        sha256="31a71e9a05e6523de2b86b4026821bbb75fb411eb5b18ae38b27c1f44158014a",
+        deprecated="true",
+    )
+    version(
+        "4.4.1",
+        sha256="c09e3f5a3533ebedee2cc7dfaacd7bac4680c14c3fa540669466583a23f04b67",
+        deprecated="true",
+    )
+    version(
+        "4.4",
+        sha256="b1d6fecb546bc645ced430ea3fc166e85835f3b997d4e5f0dece71919fc95a99",
+        deprecated="true",
+    )
+
+    depends_on("c", type="build")  # generated
+    depends_on("cxx", type="build")  # generated
+
+    depends_on("pkgconfig", type="build")
+    depends_on("zlib-api")
+
+    def url_for_version(self, version):
+        url = "http://apps.fz-juelich.de/scalasca/releases/cube/{0}/dist/cubew-{1}.tar.gz"
+
+        return url.format(version.up_to(2), version)
+
+    def configure_args(self):
+        configure_args = ["--enable-shared"]
+        configure_args.append("--with-frontend-zlib=%s" % self.spec["zlib-api"].prefix.lib)
+        configure_args.append("--with-backend-zlib=%s" % self.spec["zlib-api"].prefix.lib)
+
+        return configure_args
+
+    def install(self, spec, prefix):
+        make("install", parallel=True)
diff --git a/recipes/scorep/common/repo/packages/libunwind/package.py b/recipes/scorep/common/repo/packages/libunwind/package.py
new file mode 100644
index 000000000..ab443cebb
--- /dev/null
+++ b/recipes/scorep/common/repo/packages/libunwind/package.py
@@ -0,0 +1,149 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class Libunwind(AutotoolsPackage):
+    """A portable and efficient C programming interface (API) to determine
+    the call-chain of a program."""
+
+    homepage = "https://www.nongnu.org/libunwind/"
+    url = "https://github.com/libunwind/libunwind/releases/download/v0.0.0/libunwind-0.0.0.tar.gz"
+    git = "https://github.com/libunwind/libunwind"
+    maintainers("mwkrentel")
+
+    license("MIT")
+
+    version("master", branch="master")
+    version("1.8-stable", branch="v1.8-stable")
+    version("1.8.1", sha256="ddf0e32dd5fafe5283198d37e4bf9decf7ba1770b6e7e006c33e6df79e6a6157")
+    version("1.7-stable", branch="v1.7-stable")
+    version("1.7.2", sha256="a18a6a24307443a8ace7a8acc2ce79fbbe6826cd0edf98d6326d0225d6a5d6e6")
+    version("1.6-stable", branch="v1.6-stable")
+    version("1.6.2", sha256="4a6aec666991fb45d0889c44aede8ad6eb108071c3554fcdff671f9c94794976")
+    version("1.5.0", sha256="90337653d92d4a13de590781371c604f9031cdb50520366aa1e3a91e1efb1017")
+    version("1.4.0", sha256="df59c931bd4d7ebfd83ee481c943edf015138089b8e50abed8d9c57ba9338435")
+    version("1.3.1", sha256="43997a3939b6ccdf2f669b50fdb8a4d3205374728c2923ddc2354c65260214f8")
+    version("1.2.1", sha256="3f3ecb90e28cbe53fba7a4a27ccce7aad188d3210bb1964a923a731a27a75acb")
+
+    depends_on("c", type="build")  # generated
+    depends_on("cxx", type="build")  # generated
+
+    variant("docs", default=True, description="Build man page")
+    variant(
+        "libs",
+        default="shared,static",
+        values=("shared", "static"),
+        multi=True,
+        description="Build shared libs, static libs or both",
+    )
+    variant("pic", default=False, description="Compile with position independent code.")
+    variant("tests", default=True, description="Build tests")
+
+    variant(
+        "block_signals",
+        default=False,
+        description="Block signals before performing mutex operations",
+    )
+
+    variant(
+        "components",
+        values=any_combination_of("coredump", "ptrace", "setjmp"),
+        description="Build specified libunwind libraries",
+    )
+
+    variant(
+        "conservative_checks",
+        default=False,
+        description="Validate all memory addresses before use",
+    )
+
+    variant("cxx_exceptions", default=False, description="Use libunwind to handle C++ exceptions")
+
+    variant("debug", default=False, description="Turn on debug support (slows down execution)")
+
+    variant(
+        "debug_frame", default=False, description='Load the ".debug_frame" section if available'
+    )
+
+    variant("weak_backtrace", default=True, description="Provide the weak 'backtrace' symbol")
+
+    variant("xz", default=False, description="Support xz (lzma) compressed symbol tables.")
+
+    variant(
+        "zlib",
+        default=False,
+        description="Support zlib compressed symbol tables " "(1.5 and later).",
+    )
+
+    # The libunwind releases contain the autotools generated files,
+    # but the git repo snapshots do not.
+    reconf_versions = "@master,1.6-stable,1.7-stable,1.8-stable"
+    depends_on("autoconf", type="build", when=reconf_versions)
+    depends_on("automake", type="build", when=reconf_versions)
+    depends_on("libtool", type="build", when=reconf_versions)
+    depends_on("m4", type="build", when=reconf_versions)
+
+    depends_on("xz", type="link", when="+xz")
+    depends_on("zlib-api", type="link", when="+zlib")
+
+    conflicts("platform=darwin", msg="Non-GNU libunwind needs ELF libraries Darwin does not have")
+
+    # Introduced in https://github.com/libunwind/libunwind/pull/555, fixed in
+    # https://github.com/libunwind/libunwind/pull/723
+    conflicts("target=ppc64:", when="@1.8")
+    conflicts("target=ppc64le:", when="@1.8")
+
+    conflicts("target=aarch64:", when="@1.8:")
+
+    provides("unwind")
+
+    def url_for_version(self, version):
+        if version == Version("1.5.0"):
+            return f"https://github.com/libunwind/libunwind/releases/download/v{version.up_to(2)}/libunwind-{version}.tar.gz"
+        else:
+            return super().url_for_version(version)
+
+    def flag_handler(self, name, flags):
+        wrapper_flags = []
+
+        if name == "cflags":
+            # https://github.com/libunwind/libunwind/pull/166
+            if (
+                self.spec.satisfies("@:1.4 %gcc@10:")
+                or self.spec.satisfies("@:1.4 %cce@11:")
+                or self.spec.satisfies("@:1.4 %clang@11:")
+            ):
+                wrapper_flags.append("-fcommon")
+
+            if self.spec.satisfies("+pic"):
+                wrapper_flags.append(self.compiler.cc_pic_flag)
+
+        return (wrapper_flags, None, flags)
+
+    def configure_args(self):
+        spec = self.spec
+        args = []
+
+        args += self.enable_or_disable("documentation", variant="docs")
+        args += self.enable_or_disable("libs")
+        args += self.enable_or_disable("tests")
+
+        args += self.enable_or_disable("block-signals", variant="block_signals")
+        args += self.enable_or_disable("components")
+        args += self.enable_or_disable("conservative-checks", variant="conservative_checks")
+        args += self.enable_or_disable("cxx-exceptions", variant="cxx_exceptions")
+        args += self.enable_or_disable("debug")
+        args += self.enable_or_disable("debug-frame", variant="debug_frame")
+        args += self.enable_or_disable("minidebuginfo", variant="xz")
+        #  building without weak backtrace symbol is possible in 1.5.x and later
+        if self.spec.satisfies("@1.5:"):
+            args += self.enable_or_disable("weak-backtrace", variant="weak_backtrace")
+        # zlib support is available in 1.5.x and later
+        if spec.satisfies("@1.5:"):
+            args += self.enable_or_disable("zlibdebuginfo", variant="zlib")
+
+        return args
diff --git a/recipes/scorep/common/repo/packages/opari2/package.py b/recipes/scorep/common/repo/packages/opari2/package.py
new file mode 100644
index 000000000..7124cd525
--- /dev/null
+++ b/recipes/scorep/common/repo/packages/opari2/package.py
@@ -0,0 +1,48 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class Opari2(AutotoolsPackage):
+    """OPARI2 is a source-to-source instrumentation tool for OpenMP and hybrid
+    codes. It surrounds OpenMP directives and runtime library calls with calls
+    to the POMP2 measurement interface. OPARI2 will provide you with a new
+    initialization method that allows for multi-directory and parallel builds
+    as well as the usage of pre-instrumented libraries. Furthermore, an
+    efficient way of tracking parent-child relationships was added.
+    Additionally, we extended OPARI2 to support instrumentation of OpenMP 3.0
+    tied tasks.
+    """
+
+    homepage = "https://www.vi-hps.org/projects/score-p"
+    url = "https://perftools.pages.jsc.fz-juelich.de/cicd/opari2/tags/opari2-2.0.8/opari2-2.0.8.tar.gz"
+
+    version("2.0.9", sha256="d57139f757c5666afaaead45ed3d0954a9b98c4a6cef6b22afe672707cffd779")
+    version("2.0.8", sha256="196e59a2a625e6c795a6124c61e784bad142f9f38df0b4fa4d435ba9b9c19721")
+    version("2.0.7", sha256="e302a4cc265eb2a4aa27c16a90eabd9e1e58cb02a191dd1c4d86f9a0df128715")
+    version("2.0.6", sha256="55972289ce66080bb48622110c3189a36e88a12917635f049b37685b9d3bbcb0")
+    version("2.0.5", sha256="9034dd7596ac2176401090fd5ced45d0ab9a9404444ff767f093ccce68114ef5")
+    version("2.0.4", sha256="f69e324792f66780b473daf2b3c81f58ee8188adc72b6fe0dacf43d4c1a0a131")
+    version("2.0.3", sha256="7e2efcfbc99152ee6e31454ef4fb747f77165691539d5d2c1df2abc4612de86c")
+    version("2.0.1", sha256="f49d74d7533f428a4701cd561eba8a69f60615332e81b66f01ef1c9b7ee54666")
+    version("2.0", sha256="0c4e575be05627cd001d692204f10caef37b2f3d1ec825f98cbe1bfa4232b0b7")
+    version("1.1.4", sha256="b80c04fe876faaa4ee9a0654486ecbeba516b27fc14a90d20c6384e81060cffe")
+    version("1.1.2", sha256="8405c2903730d94c828724b3a5f8889653553fb8567045a6c54ac0816237835d")
+
+    depends_on("c", type="build")  # generated
+    depends_on("cxx", type="build")  # generated
+    depends_on("fortran", type="build")  # generated
+
+    def url_for_version(self, version):
+        if version >= Version("2.0.6"):
+            url = "https://perftools.pages.jsc.fz-juelich.de/cicd/opari2/tags/opari2-{0}/opari2-{0}.tar.gz"
+        else:
+            url = "https://www.vi-hps.org/cms/upload/packages/opari2/opari2-{0}.tar.gz"
+
+        return url.format(version)
+
+    def configure_args(self):
+        return ["--enable-shared"]
diff --git a/recipes/scorep/common/repo/packages/otf2/collective_callbacks.patch b/recipes/scorep/common/repo/packages/otf2/collective_callbacks.patch
new file mode 100644
index 000000000..daa07d84c
--- /dev/null
+++ b/recipes/scorep/common/repo/packages/otf2/collective_callbacks.patch
@@ -0,0 +1,13 @@
+diff --git a/src/otf2_archive_int.c b/src/otf2_archive_int.c
+index db9b7a9..68f1694 100644
+--- a/src/otf2_archive_int.c
++++ b/src/otf2_archive_int.c
+@@ -1083,7 +1083,7 @@ otf2_archive_set_collective_callbacks( OTF2_Archive*                   archive,
+     archive->global_comm_context  = globalCommContext;
+     archive->local_comm_context   = localCommContext;
+ 
+-    OTF2_ErrorCode status;
++    OTF2_ErrorCode status = OTF2_SUCCESS;
+ 
+     /* It is time to create the directories by the root rank. */
+     if ( archive->file_mode == OTF2_FILEMODE_WRITE )
diff --git a/recipes/scorep/common/repo/packages/otf2/cray_ac_scorep_sys_detection-m4.patch b/recipes/scorep/common/repo/packages/otf2/cray_ac_scorep_sys_detection-m4.patch
new file mode 100644
index 000000000..52ea2428e
--- /dev/null
+++ b/recipes/scorep/common/repo/packages/otf2/cray_ac_scorep_sys_detection-m4.patch
@@ -0,0 +1,11 @@
+--- a/vendor/common/build-config/m4/ac_scorep_sys_detection.m4	2019-07-19 01:31:13.409311556 -0500
++++ b/vendor/common/build-config/m4/ac_scorep_sys_detection.m4	2021-03-04 22:11:30.278313559 -0600
+@@ -100,6 +100,8 @@
+                   [test "x${build_cpu}" = "xpowerpc64" && test -d /bgsys],
+                       [ac_scorep_platform="bgp"],
+                   [(test "x${build_cpu}" = "xx86_64" || test "x${build_cpu}" = "xaarch64") && test -d /opt/cray],
++                      [AS_IF([test -d /opt/cray/cs-prgenv],
++                           [ac_scorep_platform="crayxc"])]
+                       [AS_IF([test -L /opt/cray/pmi/default],
+                            [AS_IF([test "x`readlink -f /opt/cray/pmi/default | grep -o --regexp=[[a-z]]*$ | grep -q ss && echo TRUE`" = "xTRUE"],
+                                    [ac_scorep_platform="crayxt"],
diff --git a/recipes/scorep/common/repo/packages/otf2/package.py b/recipes/scorep/common/repo/packages/otf2/package.py
new file mode 100644
index 000000000..efe3eae8e
--- /dev/null
+++ b/recipes/scorep/common/repo/packages/otf2/package.py
@@ -0,0 +1,110 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class Otf2(AutotoolsPackage):
+    """The Open Trace Format 2 is a highly scalable, memory efficient event
+    trace data format plus support library.
+    """
+
+    homepage = "https://www.vi-hps.org/projects/score-p"
+    url = "https://perftools.pages.jsc.fz-juelich.de/cicd/otf2/tags/otf2-3.0/otf2-3.0.tar.gz"
+
+    version("3.1.1", sha256="5a4e013a51ac4ed794fe35c55b700cd720346fda7f33ec84c76b86a5fb880a6e")
+    version("3.1", sha256="09dff2eda692486b88ad5ee189bbc9d7ebc1f17c863108c44ccf9631badbada4")
+    version("3.0.3", sha256="18a3905f7917340387e3edc8e5766f31ab1af41f4ecc5665da6c769ca21c4ee8")
+    version("3.0", sha256="6fff0728761556e805b140fd464402ced394a3c622ededdb618025e6cdaa6d8c")
+    version("2.3", sha256="36957428d37c40d35b6b45208f050fb5cfe23c54e874189778a24b0e9219c7e3")
+    version(
+        "2.2",
+        sha256="d0519af93839dc778eddca2ce1447b1ee23002c41e60beac41ea7fe43117172d",
+        deprecated=True,
+    )
+    version(
+        "2.1.1",
+        sha256="01591b42e76f396869ffc84672f4eaa90ee8ec2a8939755d9c0b5b8ecdcf47d3",
+        deprecated=True,
+    )
+    version(
+        "2.1",
+        sha256="8ad38ea0461099e34f00f2947af4409ce9b9c379e14c3f449ba162e51ac4cad3",
+        deprecated=True,
+    )
+    version(
+        "2.0",
+        sha256="bafe0ac08e0a13e71568e5774dc83bd305d907159b4ceeb53d2e9f6e29462754",
+        deprecated=True,
+    )
+    version(
+        "1.5.1",
+        sha256="a4dc9f6c99376030b43a4c7b1ee77cfb530b03928ea688c6d1a380b3f4e8e488",
+        deprecated=True,
+    )
+    version(
+        "1.4",
+        sha256="fb5fe169003c01e40848e224f09c440014e9872e84d2ca02ce7fffdd3f879a2f",
+        deprecated=True,
+    )
+    version(
+        "1.3.1",
+        sha256="c4605ace845d89fb1a19223137b92cc503b01e3db5eda8c9e0715d0cfcf2e4b9",
+        deprecated=True,
+    )
+    version(
+        "1.2.1",
+        sha256="1db9fb0789de4a9c3c96042495e4212a22cb581f734a1593813adaf84f2288e4",
+        deprecated=True,
+    )
+
+    depends_on("c", type="build")  # generated
+    depends_on("cxx", type="build")  # generated
+    depends_on("fortran", type="build")
+
+    def url_for_version(self, version):
+        if version < Version("2.3"):
+            return f"https://www.vi-hps.org/cms/upload/packages/otf2/otf2-{version}.tar.gz"
+
+        return f"https://perftools.pages.jsc.fz-juelich.de/cicd/otf2/tags/otf2-{version}/otf2-{version}.tar.gz"
+
+    extends("python")
+
+    # `imp` module required
+    depends_on("python@:3.11", type=("build", "run"))
+
+    with when("@2.2 %cce"):
+        depends_on("autoconf", type="build")
+        depends_on("automake", type="build")
+        depends_on("libtool", type="build")
+
+    # Fix missing initialization of variable resulting in issues when used by
+    # APEX/HPX: https://github.com/STEllAR-GROUP/hpx/issues/5239
+    patch("collective_callbacks.patch", when="@2.1:")
+
+    # when using Cray's cs-prgenv, allow the build system to detect the systems as an XC
+    patch("cray_ac_scorep_sys_detection-m4.patch", when="@2.2 %cce")
+
+    @property
+    def force_autoreconf(self):
+        return self.spec.satisfies("@2.2 %cce")
+
+    def flag_handler(self, name, flags):
+        if name == "cflags":
+            flags.append(self.compiler.cc_pic_flag)
+        elif name == "cxxflags":
+            flags.append(self.compiler.cxx_pic_flag)
+        return (flags, None, None)
+
+    def configure_args(self):
+        return [
+            "--enable-shared",
+            f"CC={spack_cc}",
+            f"CXX={spack_cxx}",
+            f"F77={spack_f77}",
+            f"FC={spack_fc}",
+            "PYTHON_FOR_GENERATOR=:",
+        ]
diff --git a/recipes/scorep/common/repo/packages/scalasca/cscs.patch b/recipes/scorep/common/repo/packages/scalasca/cscs.patch
new file mode 100644
index 000000000..f850025dd
--- /dev/null
+++ b/recipes/scorep/common/repo/packages/scalasca/cscs.patch
@@ -0,0 +1,45 @@
+diff -Naur scalasca-2.6.2.ori/build-config/common/platforms/platform-backend-craygeneric scalasca-2.6.2/build-config/common/platforms/platform-backend-craygeneric
+--- scalasca-2.6.2.ori/build-config/common/platforms/platform-backend-craygeneric	2025-04-02 08:37:55.000000000 +0200
++++ scalasca-2.6.2/build-config/common/platforms/platform-backend-craygeneric	2025-04-11 15:56:20.000000000 +0200
+@@ -1,7 +1,7 @@
+-CC=cc
+-CXX=CC
+-F77=ftn
+-FC=ftn
++CC=mpicc
++CXX=mpicxx
++F77=mpif90
++FC=mpif90
+ 
+ #CPPFLAGS=
+ CFLAGS=-g -O2
+diff -Naur scalasca-2.6.2.ori/build-config/common/platforms/platform-mpi-craygeneric scalasca-2.6.2/build-config/common/platforms/platform-mpi-craygeneric
+--- scalasca-2.6.2.ori/build-config/common/platforms/platform-mpi-craygeneric	2025-04-02 08:37:55.000000000 +0200
++++ scalasca-2.6.2/build-config/common/platforms/platform-mpi-craygeneric	2025-04-11 15:56:45.000000000 +0200
+@@ -1,7 +1,7 @@
+-MPICC=cc
+-MPICXX=CC
+-MPIF77=ftn
+-MPIFC=ftn
++MPICC=mpicc
++MPICXX=mpicxx
++MPIF77=mpif90
++MPIFC=mpif90
+ 
+ #MPI_CPPFLAGS=
+ MPI_CFLAGS=-g -O2
+diff -Naur scalasca-2.6.2.ori/build-config/common/platforms/platform-shmem-craygeneric scalasca-2.6.2/build-config/common/platforms/platform-shmem-craygeneric
+--- scalasca-2.6.2.ori/build-config/common/platforms/platform-shmem-craygeneric	2025-04-02 08:37:55.000000000 +0200
++++ scalasca-2.6.2/build-config/common/platforms/platform-shmem-craygeneric	2025-04-11 15:57:05.000000000 +0200
+@@ -1,7 +1,7 @@
+-SHMEMCC=cc
+-SHMEMCXX=CC
+-SHMEMF77=ftn
+-SHMEMFC=ftn
++SHMEMCC=mpicc
++SHMEMCXX=mpicxx
++SHMEMF77=mpif90
++SHMEMFC=mpif90
+ 
+ #SHMEM_CPPFLAGS=
+ SHMEM_CFLAGS=-g -O2
diff --git a/recipes/scorep/common/repo/packages/scalasca/package.py b/recipes/scorep/common/repo/packages/scalasca/package.py
new file mode 100644
index 000000000..0660284a8
--- /dev/null
+++ b/recipes/scorep/common/repo/packages/scalasca/package.py
@@ -0,0 +1,94 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class Scalasca(AutotoolsPackage):
+    """Scalasca is a software tool that supports the performance optimization
+    of parallel programs by measuring and analyzing their runtime
+    behavior. The analysis identifies potential performance
+    bottlenecks - in particular those concerning communication and
+    synchronization - and offers guidance in exploring their causes.
+
+    """
+
+    homepage = "https://www.scalasca.org"
+    url = "https://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz"
+    list_url = "https://scalasca.org/scalasca/front_content.php?idart=1072"
+
+    version("2.6.2", sha256="17e72fd908be43879955e4ed49c2732d4dbda7d295fec2d8b3af7ddafe1202a0")
+    version("2.6.1", sha256="a0dbc3de82a6c0fe598de9e340513cff2882c199410a632d3a7f073ba921c7e7")
+    version("2.6", sha256="b3f9cb1d58f3e25090a39da777bae8ca2769fd10cbd6dfb9a4887d873ee2441e")
+    version("2.5", sha256="7dfa01e383bfb8a4fd3771c9ea98ff43772e415009d9f3c5f63b9e05f2dde0f6")
+    version("2.4", sha256="4a895868258030f700a635eac93d36764f60c8c63673c7db419ea4bcc6b0b760")
+    version("2.3.1", sha256="8ff485d03ab2c02a5852d346ae041a191c60b4295f8f9b87fe58cd36977ba558")
+    version("2.2.2", sha256="909567ca294366119bbcb7e8122b94f43982cbb328e18c6f6ce7a722d72cd6d4")
+    version("2.1", sha256="fefe43f10becf7893863380546c80ac8db171a3b1ebf97d0258602667572c2fc")
+
+    depends_on("c", type="build")  # generated
+    depends_on("cxx", type="build")  # generated
+
+    depends_on("mpi")
+
+    # version 2.6.2+
+    depends_on("scorep@9:", when="@2.6.2:", type=("run"))
+    depends_on("otf2@3.1.1:", when="@2.6.2:")
+    depends_on("cubew@4.9:", when="@2.6.2:")
+    patch("cscs.patch", when="@2.6.2:")  # force uenv compilers
+
+    # version 2.6.1+
+    depends_on("scorep@8:", when="@2.6.1:", type=("run"))
+    depends_on("otf2@3:", when="@2.6.1:")
+    depends_on("cubew@4.8:", when="@2.6.1:")
+
+    # version 2.4 - 2.6.0
+    depends_on("cubew@4.4:4.7", when="@2.4:2.6.0")
+    depends_on("scorep@6.0:7", when="@2.4:2.6.0", type=("run"))
+
+    # version 2.3 - 2.6.0
+    depends_on("otf2@2:2.99", when="@2.3:2.6.0")
+
+    # version 2.3
+    depends_on("cube@4.3", when="@2.3:2.3.99")
+
+    # version 2.1 - 2.2
+    depends_on("cube@4.2", when="@2.1:2.2")
+    depends_on("otf2@1.4", when="@2.1:2.2")
+
+    def url_for_version(self, version):
+        return "http://apps.fz-juelich.de/scalasca/releases/scalasca/{0}/dist/scalasca-{1}.tar.gz".format(
+            version.up_to(2), version
+        )
+
+    def configure_args(self):
+        spec = self.spec
+
+        config_args = ["--enable-shared"]
+
+        if spec.satisfies("@2.4:"):
+            config_args.append("--with-cube=%s" % spec["cubew"].prefix.bin)
+        else:
+            config_args.append("--with-cube=%s" % spec["cube"].prefix.bin)
+
+        config_args.append("--with-otf2=%s" % spec["otf2"].prefix.bin)
+
+        if self.spec["mpi"].name == "openmpi":
+            config_args.append("--with-mpi=openmpi")
+        elif self.spec.satisfies("^mpich@3:"):
+            config_args.append("--with-mpi=mpich3")
+
+        if "+mpi" in spec:
+            config_args.extend(
+                [
+                    "MPICC={0}".format(spec["mpi"].mpicc),
+                    "MPICXX={0}".format(spec["mpi"].mpicxx),
+                    "MPIF77={0}".format(spec["mpi"].mpif77),
+                    "MPIFC={0}".format(spec["mpi"].mpifc),
+                ]
+            )
+
+        return config_args
diff --git a/recipes/scorep/common/repo/packages/scorep/gcc10.patch b/recipes/scorep/common/repo/packages/scorep/gcc10.patch
new file mode 100644
index 000000000..76bcb987c
--- /dev/null
+++ b/recipes/scorep/common/repo/packages/scorep/gcc10.patch
@@ -0,0 +1,14 @@
+--- a/src/adapters/compiler/gcc-plugin/scorep_plugin_pass_instrument.inc.c
++++ b/src/adapters/compiler/gcc-plugin/scorep_plugin_pass_instrument.inc.c
+@@ -83,7 +83,11 @@ is_instrumentable( const char* assemblerName )
+         return "in system header";
+     }
+ 
++#if SCOREP_GCC_PLUGIN_TARGET_VERSION < 10000
+     if ( node->global.inlined_to )
++#else
++    if ( node->inlined_to )
++#endif
+     {
+         return "was inlined";
+     }
diff --git a/recipes/scorep/common/repo/packages/scorep/gcc7.patch b/recipes/scorep/common/repo/packages/scorep/gcc7.patch
new file mode 100644
index 000000000..7383ee15b
--- /dev/null
+++ b/recipes/scorep/common/repo/packages/scorep/gcc7.patch
@@ -0,0 +1,42 @@
+diff -ru scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_gcc_version_compatibility.h scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_gcc_version_compatibility.h
+--- scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_gcc_version_compatibility.h	2017-08-15 14:46:27.353875030 +0200
++++ scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_gcc_version_compatibility.h	2017-08-15 14:52:18.458118812 +0200
+@@ -27,6 +27,11 @@
+     DECL_SECTION_NAME( decl ) = build_string( strlen( section ), section )
+ #endif
+ 
++#if SCOREP_GCC_PLUGIN_TARGET_VERSION < 7000
++#define SET_DECL_ALIGN( decl, align ) \
++    DECL_ALIGN( decl ) = ( align )
++#endif
++
+ #if SCOREP_GCC_PLUGIN_TARGET_VERSION >= 5000
+ #define varpool_finalize_decl( decl ) varpool_node::finalize_decl( decl )
+ #define cgraph_get_node( decl ) cgraph_node::get( decl )
+diff -ru scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_inst_descriptor.inc.c scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_inst_descriptor.inc.c
+--- scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_inst_descriptor.inc.c	2017-08-15 14:46:27.353875030 +0200
++++ scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_inst_descriptor.inc.c	2017-08-15 14:52:56.220854113 +0200
+@@ -194,7 +194,7 @@
+                                         TREE_TYPE( region_descr_value ) );
+ 
+     /* Align the struct generously, so that it works for 32 and 64 bit */
+-    DECL_ALIGN( region_descr_var )      = 64 * BITS_PER_UNIT;
++    SET_DECL_ALIGN( region_descr_var, 64 * BITS_PER_UNIT );
+     DECL_USER_ALIGN( region_descr_var ) = 1;
+ 
+     /* The struct is 64 bytes, because of reserved entries */
+diff -ru scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_tree-flow.h scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_tree-flow.h
+--- scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_tree-flow.h	2017-08-15 14:46:27.353875030 +0200
++++ scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_tree-flow.h	2017-08-15 14:49:26.163888408 +0200
+@@ -23,6 +23,11 @@
+ #include "stringpool.h"
+ #include "basic-block.h"
+ #include "tree-ssa-alias.h"
++
++#if SCOREP_GCC_PLUGIN_TARGET_VERSION >= 7000
++#include "tree-vrp.h"
++#endif
++
+ #include "tree-ssanames.h"
+ #include "internal-fn.h"
+ #include "gimple-expr.h"
diff --git a/recipes/scorep/common/repo/packages/scorep/package.py b/recipes/scorep/common/repo/packages/scorep/package.py
new file mode 100644
index 000000000..c959cb80e
--- /dev/null
+++ b/recipes/scorep/common/repo/packages/scorep/package.py
@@ -0,0 +1,253 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class Scorep(AutotoolsPackage):
+    """The Score-P measurement infrastructure is a highly scalable and
+    easy-to-use tool suite for profiling, event tracing, and online analysis
+    of HPC applications.
+    """
+
+    homepage = "https://www.vi-hps.org/projects/score-p"
+    url = "https://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-7.1/scorep-7.1.tar.gz"
+    maintainers("wrwilliams")
+
+    # https://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-9.0/scorep-9.0.tar.gz
+    version("9.0", sha256="5d0a5db4cc6f31c30ae03c7e6f6245e83667b0ff38a7041ffe8b2e8e581e0997")
+    version("8.4", sha256="7bbde9a0721d27cc6205baf13c1626833bcfbabb1f33b325a2d67976290f7f8a")
+    version("8.3", sha256="76c914e6319221c059234597a3bc53da788ed679179ac99c147284dcefb1574a")
+    # version 8.2 was immediately superseded before it hit Spack
+    version("8.1", sha256="3a40b481fce610871ddf6bdfb88a6d06b9e5eb38c6080faac6d5e44990060a37")
+    version("8.0", sha256="4c0f34f20999f92ebe6ca1ff706d0846b8ce6cd537ffbedb49dfaef0faa66311")
+    version("7.1", sha256="98dea497982001fb82da3429ca55669b2917a0858c71abe2cfe7cd113381f1f7")
+    version("7.0", sha256="68f24a68eb6f94eaecf500e17448f566031946deab74f2cba072ee8368af0996")
+    version(
+        "6.0",
+        sha256="5dc1023eb766ba5407f0b5e0845ec786e0021f1da757da737db1fb71fc4236b8",
+        deprecated="true",
+    )
+    version(
+        "5.0",
+        sha256="0651614eacfc92ffbe5264a3efebd0803527ae6e8b11f7df99a56a02c37633e1",
+        deprecated="true",
+    )
+    version(
+        "4.1",
+        sha256="7bb6c1eecdd699b4a3207caf202866778ee01f15ff39a9ec198fcd872578fe63",
+        deprecated="true",
+    )
+    version(
+        "4.0",
+        sha256="c050525606965950ad9b35c14077b88571bcf9bfca08599279a3d8d1bb00e655",
+        deprecated="true",
+    )
+    version(
+        "3.1",
+        sha256="49efe8a4e02afca752452809e1b21cba42e8ccb0a0772f936d4459d94e198540",
+        deprecated="true",
+    )
+    version(
+        "3.0",
+        sha256="c9e7fe0a8239b3bbbf7628eb15f7e90de9c36557818bf3d01aecce9fec2dc0be",
+        deprecated="true",
+    )
+    version(
+        "2.0.2",
+        sha256="d19498408781048f0e9039a1a245bce6b384f09fbe7d3643105b4e2981ecd610",
+        deprecated="true",
+    )
+    version(
+        "1.4.2",
+        sha256="d7f3fcca2efeb2f5d5b5f183b3b2c4775e66cbb3400ea2da841dd0428713ebac",
+        deprecated="true",
+    )
+    version(
+        "1.3",
+        sha256="dcfd42bd05f387748eeefbdf421cb3cd98ed905e009303d70b5f75b217fd1254",
+        deprecated="true",
+    )
+
+    depends_on("c", type="build")  # generated
+    depends_on("cxx", type="build")  # generated
+    depends_on("fortran", type="build")  # generated
+
+    def url_for_version(self, version):
+        if version < Version("7.0"):
+            return "https://www.vi-hps.org/cms/upload/packages/scorep/scorep-{0}.tar.gz".format(
+                version
+            )
+
+        return "https://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-{0}/scorep-{0}.tar.gz".format(
+            version
+        )
+
+    patch("gcc7.patch", when="@1.4:3")
+    patch("gcc10.patch", when="@3.1:6.0")
+
+    variant("mpi", default=True, description="Enable MPI support")
+    variant("papi", default=True, description="Enable PAPI")
+    variant("pdt", default=False, description="Enable PDT")
+    variant("shmem", default=False, description="Enable shmem tracing")
+    variant("unwind", default=False, description="Enable sampling via libunwind and lib wrapping")
+    variant("cuda", default=False, description="Enable CUDA support")
+    variant("hip", default=False, description="Enable ROCm/HIP support", when="@8.0:")
+    variant("gotcha", default=True, description="Enable GOTCHA support", when="@9:")
+    # Dependencies for SCORE-P are quite tight. See the homepage for more
+    # information. Starting with scorep 4.0 / cube 4.4, Score-P only depends on
+    # two components of cube -- cubew and cubelib.
+
+    # SCOREP 9
+    depends_on("binutils", type="link", when="@9:")
+    depends_on("otf2@3.1.1:", when="@9:")
+    depends_on("opari2@2.0.9:", when="@9:")
+    depends_on("cubew@4.9:", when="@9:")
+    depends_on("cubelib@4.9:", when="@9:")
+    # SCOREP 8
+    depends_on("binutils", type="link", when="@8:")
+    depends_on("otf2@3:", when="@8:")
+    depends_on("cubew@4.8.2:", when="@8.3:")
+    depends_on("cubelib@4.8.2:", when="@8.3:")
+    depends_on("cubew@4.8:", when="@8:8.2")
+    depends_on("cubelib@4.8:", when="@8:8.2")
+    # fall through to Score-P 7's OPARI2, no new release
+    # SCOREP 7
+    depends_on("otf2@2.3:2.3.99", when="@7.0:7")
+    depends_on("cubew@4.6:4.7.99", when="@7.0:7")
+    depends_on("cubelib@4.6:4.7.99", when="@7.0:7")
+    depends_on("opari2@2.0.6:", when="@7:")
+    # SCOREP 6
+    depends_on("otf2@2.2:", when="@6.0:6")
+    # SCOREP 4 and 5
+    depends_on("otf2@2.1:", when="@4:5")
+    depends_on("cubew@4.4:4.5", when="@4:6")
+    depends_on("cubelib@4.4:4.5", when="@4:6")
+    # SCOREP 3
+    depends_on("otf2@2:", when="@3.0:3")
+    depends_on("opari2@2.0:2.0.5", when="@3:6")
+    depends_on("cube@4.3:4.3.5", when="@3.0:3")
+    # SCOREP 2.0.2
+    depends_on("otf2@2.0", when="@2.0.2")
+    depends_on("opari2@2.0", when="@2.0.2")
+    depends_on("cube@4.3:4.3.5", when="@2.0.2")
+    # SCOREP 1.4.2
+    depends_on("otf2@1.5:1.6", when="@1.4.2")
+    depends_on("opari2@1.1.4", when="@1.4.2")
+    depends_on("cube@4.2.3:4.3.5", when="@1.4.2")
+    # SCOREP 1.3
+    depends_on("otf2@1.4", when="@1.3")
+    depends_on("opari2@1.1.4", when="@1.3")
+    depends_on("cube@4.2.3", when="@1.3")
+
+    depends_on("mpi@2.2:", when="@7.0:+mpi")
+    depends_on("mpi", when="+mpi")
+    depends_on("papi", when="+papi")
+    depends_on("pdt", when="+pdt")
+    depends_on("llvm", when="+unwind")
+    depends_on("libunwind", when="+unwind")
+    depends_on("cuda@7:", when="@8.0:+cuda")
+    depends_on("cuda", when="+cuda")
+    depends_on("hip@4.2:", when="+hip")
+    depends_on("rocprofiler-dev", when="+hip")
+    depends_on("rocm-smi-lib", when="+hip")
+    # Score-P requires a case-sensitive file system, and therefore
+    # does not work on macOS
+    # https://github.com/spack/spack/issues/1609
+    conflicts("platform=darwin")
+    # Score-P first has support for ROCm 6.x as of v8.4
+    conflicts("hip@6.0:", when="@1.0:8.3+hip")
+
+    def find_libpath(self, libname, root):
+        libs = find_libraries(libname, root, shared=True, recursive=True)
+        if len(libs.directories) == 0:
+            return None
+        return libs.directories[0]
+
+    # handle any mapping of Spack compiler names to Score-P args
+    # this should continue to exist for backward compatibility
+    def clean_compiler(self, compiler):
+        renames = {"cce": "cray", "rocmcc": "amdclang"}
+        if compiler in renames:
+            return renames[compiler]
+        return compiler
+
+    def configure_args(self):
+        spec = self.spec
+
+        config_args = [
+            "--with-otf2=%s" % spec["otf2"].prefix.bin,
+            "--with-opari2=%s" % spec["opari2"].prefix.bin,
+            "--enable-shared",
+        ]
+
+        cname = self.clean_compiler(spec.compiler.name)
+
+        config_args.append("--with-nocross-compiler-suite={0}".format(cname))
+
+        if self.version >= Version("4.0"):
+            config_args.append("--with-cubew=%s" % spec["cubew"].prefix.bin)
+            config_args.append("--with-cubelib=%s" % spec["cubelib"].prefix.bin)
+        else:
+            config_args.append("--with-cube=%s" % spec["cube"].prefix.bin)
+
+        if "+gotcha" in spec:
+            config_args.append("--with-libgotcha=download")
+
+        if "+papi" in spec:
+            config_args.append("--with-papi-header=%s" % spec["papi"].prefix.include)
+            config_args.append("--with-papi-lib=%s" % spec["papi"].prefix.lib)
+
+        if "+pdt" in spec:
+            config_args.append("--with-pdt=%s" % spec["pdt"].prefix.bin)
+
+        if "+unwind" in spec:
+            config_args.append("--with-libunwind-include=%s" % spec["libunwind"].prefix.include)
+            config_args.append("--with-libunwind-lib=%s" % spec["libunwind"].prefix.lib)
+
+        if "+cuda" in spec:
+            config_args.append("--with-libcudart=%s" % spec["cuda"].prefix)
+            cuda_driver_path = self.find_libpath("libcuda", spec["cuda"].prefix)
+            config_args.append("--with-libcuda-lib=%s" % cuda_driver_path)
+
+        if "+hip" in spec:
+            config_args.append("--with-rocm=%s" % spec["hip"].prefix)
+
+        config_args += self.with_or_without("shmem")
+        config_args += self.with_or_without("mpi")
+
+        if spec.satisfies("^intel-mpi"):
+            config_args.append("--with-mpi=intel3")
+        elif (
+            spec.satisfies("^mpich")
+            or spec.satisfies("^mvapich2")
+            or spec.satisfies("^cray-mpich")
+        ):
+            config_args.append("--with-mpi=mpich3")
+        elif spec.satisfies("^openmpi") or spec.satisfies("^hpcx-mpi"):
+            config_args.append("--with-mpi=openmpi")
+
+        if spec.satisfies("^binutils"):
+            config_args.append("--with-libbfd-lib=%s" % spec["binutils"].prefix.lib)
+            config_args.append("--with-libbfd-include=%s" % spec["binutils"].prefix.include)
+
+        config_args.extend(
+            [
+                "CFLAGS={0}".format(self.compiler.cc_pic_flag),
+                "CXXFLAGS={0}".format(self.compiler.cxx_pic_flag),
+            ]
+        )
+
+        if "+mpi" in spec:
+            config_args.extend(
+                [
+                    "MPICC={0}".format(spec["mpi"].mpicc),
+                    "MPICXX={0}".format(spec["mpi"].mpicxx),
+                    "MPIF77={0}".format(spec["mpi"].mpif77),
+                    "MPIFC={0}".format(spec["mpi"].mpifc),
+                ]
+            )
+
+        return config_args


Reviews:
user: login: msimberg
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-21T08:30:40Z
user: login: jgphpc
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-28T09:16:56Z
user: login: msimberg
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-29T07:46:11Z
user: login: jgphpc
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-29T08:43:38Z
user: login: msimberg
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-29T09:08:54Z
user: login: msimberg
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-02T07:49:55Z
user: login: jgphpc
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-02T07:49:58Z
user: login: msimberg
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-02T08:35:29Z
user: login: msimberg
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-05-02T10:03:07Z
user: login: msimberg
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-02T11:48:59Z

Review comments:
diff_hunk: @@ -0,0 +1,149 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
path: recipes/scorep/9.0.rc2/mc/repo/packages/libunwind/package.py
user: login: msimberg
body: As far as I can tell this definition is exactly what's in 0.23.1 in upstream spack. Is this needed, or am I missing some change you've made compared to upstream?
created_at: 2025-03-21T08:29:59Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,149 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
path: recipes/scorep/9.0.rc2/mc/repo/packages/libunwind/package.py
user: login: jgphpc
body: ```
diff ~/packages/libunwind/package.py -d 9.0/gh200/repo/packages/libunwind/package.py
54c54
<         values=any_combination_of("coredump", "ptrace", "setjump"),
---
>         values=any_combination_of("coredump", "ptrace", "setjmp"),
```
created_at: 2025-04-28T09:16:56Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,5 @@
+bootstrap:
+  spec: gcc@12
+gcc:
+  specs:
+  - gcc@12
path: recipes/scorep/9.0/gh200/compilers.yaml
user: login: msimberg
body: Probably doesn't make much of a difference, but could be:
```suggestion
  - gcc@13
```
?
created_at: 2025-04-28T14:18:57Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,22 @@
+scorep:
+  features:
+    - scorep
+    - scalasca
+    - mpi
+    - cuda
+    - hdf5
+  cc: mpicc
+  cxx: mpic++
+  ftn: mpifort
+  views:
+    - default
+#
+# develop:
+#   features:
+#     - scorep
+#     - mpi
+#   cc: mpicc
+#   cxx: mpic++
+#   ftn: mpifort
+#   views:
+#     - develop
path: recipes/scorep/9.0/gh200/extra/reframe.yaml
user: login: msimberg
body: Needed? Can it be removed?
created_at: 2025-04-28T14:19:10Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+vboost_val=1
+power_val=660
+thp_wrong_val=never
+stat_interval=120
+
+vboost="$( nvidia-smi boost-slider -l | grep vboost | awk '{ print $5 }' )"
+vboost_str="$( echo "$vboost" | sort -u )"
+if [[ "$( echo "$vboost_str" | wc -l )" -gt 1 ]] || [[ "$vboost_str" -ne "$vboost_val" ]]; then
+  echo "error, node $( hostname ) has vboosts set to $( echo "$vboost" | tr '\n' ',' )"
+fi
+
+power="$( nvidia-smi -q -d POWER | grep -A3 'Module Power' | grep Current | awk '{ print $5 }' )"
+power_str="$( echo "$power" | sort -u )"
+if [[ "$( echo "$power_str" | wc -l )" -gt 1 ]] || (( $(echo "$power_str < $power_val" | bc -l) )); then
+  echo "error, node $( hostname ) has power lims set to $( echo "$power" | tr '\n' ',' )"
+fi
+
+thp_str="$( cat /sys/kernel/mm/transparent_hugepage/enabled | sed 's/.*\[\(.*\)\].*/\1/' )"
+if [[ "$thp_str" == "$thp_wrong_val" ]]; then
+  echo "error, node $( hostname ) has thp set to $thp_str"
+fi
+
+stat_str="$( cat /proc/sys/vm/stat_interval )"
+if [[ "$stat_str" -lt "$stat_interval" ]]; then
+  echo "error, node $( hostname ) has stat_internal set to $stat_str, less than $stat_interval"
+fi
+
path: recipes/scorep/9.0/gh200/repo/packages/check-node_hpl.sh
user: login: msimberg
body: Is this file needed?
created_at: 2025-04-28T14:20:06Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,94 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class Scalasca(AutotoolsPackage):
+    """Scalasca is a software tool that supports the performance optimization
+    of parallel programs by measuring and analyzing their runtime
+    behavior. The analysis identifies potential performance
+    bottlenecks - in particular those concerning communication and
+    synchronization - and offers guidance in exploring their causes.
+
+    """
+
+    homepage = "https://www.scalasca.org"
+    url = "https://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz"
+    list_url = "https://scalasca.org/scalasca/front_content.php?idart=1072"
+
+    version("2.6.2", sha256="17e72fd908be43879955e4ed49c2732d4dbda7d295fec2d8b3af7ddafe1202a0")
+    version("2.6.1", sha256="a0dbc3de82a6c0fe598de9e340513cff2882c199410a632d3a7f073ba921c7e7")
+    version("2.6", sha256="b3f9cb1d58f3e25090a39da777bae8ca2769fd10cbd6dfb9a4887d873ee2441e")
+    version("2.5", sha256="7dfa01e383bfb8a4fd3771c9ea98ff43772e415009d9f3c5f63b9e05f2dde0f6")
+    version("2.4", sha256="4a895868258030f700a635eac93d36764f60c8c63673c7db419ea4bcc6b0b760")
+    version("2.3.1", sha256="8ff485d03ab2c02a5852d346ae041a191c60b4295f8f9b87fe58cd36977ba558")
+    version("2.2.2", sha256="909567ca294366119bbcb7e8122b94f43982cbb328e18c6f6ce7a722d72cd6d4")
+    version("2.1", sha256="fefe43f10becf7893863380546c80ac8db171a3b1ebf97d0258602667572c2fc")
+
+    depends_on("c", type="build")  # generated
+    depends_on("cxx", type="build")  # generated
+
+    depends_on("mpi")
+
+    # version 2.6.2+
+    depends_on("scorep@9:", when="@2.6.2:", type=("run"))
+    depends_on("otf2@3.1.1:", when="@2.6.2:")
+    depends_on("cubew@4.9:", when="@2.6.2:")
+    patch("cscs.patch", when="@2.6.2:")
path: recipes/scorep/9.0/gh200/repo/packages/scalasca/package.py
user: login: msimberg
body: You might want to add a comment indicating what this is for, since this seems to be custom patch not intended for upstream?
created_at: 2025-04-28T14:22:05Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,254 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class Scorep(AutotoolsPackage):
+    """The Score-P measurement infrastructure is a highly scalable and
+    easy-to-use tool suite for profiling, event tracing, and online analysis
+    of HPC applications.
+    """
+
+    homepage = "https://www.vi-hps.org/projects/score-p"
+    url = "https://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-7.1/scorep-7.1.tar.gz"
+    maintainers("wrwilliams")
+
+    # https://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-9.0/scorep-9.0.tar.gz
+    version("9.0", sha256="5d0a5db4cc6f31c30ae03c7e6f6245e83667b0ff38a7041ffe8b2e8e581e0997")
+    version("8.4", sha256="7bbde9a0721d27cc6205baf13c1626833bcfbabb1f33b325a2d67976290f7f8a")
+    version("8.3", sha256="76c914e6319221c059234597a3bc53da788ed679179ac99c147284dcefb1574a")
+    # version 8.2 was immediately superseded before it hit Spack
+    version("8.1", sha256="3a40b481fce610871ddf6bdfb88a6d06b9e5eb38c6080faac6d5e44990060a37")
+    version("8.0", sha256="4c0f34f20999f92ebe6ca1ff706d0846b8ce6cd537ffbedb49dfaef0faa66311")
+    version("7.1", sha256="98dea497982001fb82da3429ca55669b2917a0858c71abe2cfe7cd113381f1f7")
+    version("7.0", sha256="68f24a68eb6f94eaecf500e17448f566031946deab74f2cba072ee8368af0996")
+    version(
+        "6.0",
+        sha256="5dc1023eb766ba5407f0b5e0845ec786e0021f1da757da737db1fb71fc4236b8",
+        deprecated="true",
+    )
+    version(
+        "5.0",
+        sha256="0651614eacfc92ffbe5264a3efebd0803527ae6e8b11f7df99a56a02c37633e1",
+        deprecated="true",
+    )
+    version(
+        "4.1",
+        sha256="7bb6c1eecdd699b4a3207caf202866778ee01f15ff39a9ec198fcd872578fe63",
+        deprecated="true",
+    )
+    version(
+        "4.0",
+        sha256="c050525606965950ad9b35c14077b88571bcf9bfca08599279a3d8d1bb00e655",
+        deprecated="true",
+    )
+    version(
+        "3.1",
+        sha256="49efe8a4e02afca752452809e1b21cba42e8ccb0a0772f936d4459d94e198540",
+        deprecated="true",
+    )
+    version(
+        "3.0",
+        sha256="c9e7fe0a8239b3bbbf7628eb15f7e90de9c36557818bf3d01aecce9fec2dc0be",
+        deprecated="true",
+    )
+    version(
+        "2.0.2",
+        sha256="d19498408781048f0e9039a1a245bce6b384f09fbe7d3643105b4e2981ecd610",
+        deprecated="true",
+    )
+    version(
+        "1.4.2",
+        sha256="d7f3fcca2efeb2f5d5b5f183b3b2c4775e66cbb3400ea2da841dd0428713ebac",
+        deprecated="true",
+    )
+    version(
+        "1.3",
+        sha256="dcfd42bd05f387748eeefbdf421cb3cd98ed905e009303d70b5f75b217fd1254",
+        deprecated="true",
+    )
+
+    depends_on("c", type="build")  # generated
+    depends_on("cxx", type="build")  # generated
+    depends_on("fortran", type="build")  # generated
+
+    def url_for_version(self, version):
+        if version < Version("7.0"):
+            return "https://www.vi-hps.org/cms/upload/packages/scorep/scorep-{0}.tar.gz".format(
+                version
+            )
+
+        return "https://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-{0}/scorep-{0}.tar.gz".format(
+            version
+        )
+
+    # patch("gcc7.patch", when="@1.4:3")
+    # patch("gcc10.patch", when="@3.1:6.0")
path: recipes/scorep/9.0/gh200/repo/packages/scorep/package.py
user: login: msimberg
body: Just to avoid differences to the upstream package, do these need to be commented out? They should not be used for 9.0 anyway. I didn't check if there were other differences to the upstream package (except the 9.0 version of course).
created_at: 2025-04-28T14:23:37Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,5 @@
+bootstrap:
+  spec: gcc@12
+gcc:
+  specs:
+  - gcc@12
path: recipes/scorep/9.0/gh200/compilers.yaml
user: login: jgphpc
body: I will need both versions, do I need 2 recipes ?
created_at: 2025-04-29T08:43:38Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,5 @@
+bootstrap:
+  spec: gcc@12
+gcc:
+  specs:
+  - gcc@12
path: recipes/scorep/9.0/gh200/compilers.yaml
user: login: msimberg
body: In principle I think you can have multiple compilers in one recipe (but different views), but I would probably avoid that if not strictly necessary. What's the purpose of having multiple compilers? Is the idea that the `scorep` uenv acts essentially as a base programming environment, a la `prgenv-gnu`? I.e. one has to compile the application and/or link to scorep to use it?
created_at: 2025-04-29T09:08:54Z
author_association: COLLABORATOR
diff_hunk: @@ -319,6 +319,22 @@ uenvs:
       recipes:
         a100: v7.5/a100
       develop: True
+  scorep:
+    "9.0_gcc12":
+      recipes:
+        gh200: 9.0_gcc12/gh200
+      deploy:
+        daint: [gh200]
+        santis: [gh200]
+        clariden: [gh200]
+  scorep:
+    "9.0_gcc13":
+      recipes:
+        gh200: 9.0_gcc13/gh200
+      deploy:
+        daint: [gh200]
+        santis: [gh200]
+        clariden: [gh200]
path: config.yaml
user: login: msimberg
body: Maybe?
```suggestion
  scorep:
    "9.0-gcc12":
      recipes:
        gh200: 9.0_gcc12/gh200
      deploy:
        daint: [gh200]
        santis: [gh200]
        clariden: [gh200]
    "9.0-gcc13":
      recipes:
        gh200: 9.0_gcc13/gh200
      deploy:
        daint: [gh200]
        santis: [gh200]
        clariden: [gh200]
```
created_at: 2025-05-02T07:48:16Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,11 @@
+default:
+  features:
+    - scorep
+    - scalasca
+    - mpi
+    - cuda
path: recipes/scorep/9.0_gcc12/gh200/extra/reframe.yaml
user: login: msimberg
body: Should this really provide these features? The packages may accidentally be in the view, but they're not explicitly listed as packages?
created_at: 2025-05-02T07:48:59Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,5 @@
+bootstrap:
+  spec: gcc@12
+gcc:
+  specs:
+  - gcc@12
path: recipes/scorep/9.0/gh200/compilers.yaml
user: login: jgphpc
body: answered offline
created_at: 2025-05-02T07:49:58Z
author_association: CONTRIBUTOR
diff_hunk: @@ -319,6 +319,22 @@ uenvs:
       recipes:
         a100: v7.5/a100
       develop: True
+  scorep:
+    "9.0-gcc12":
+      recipes:
+        gh200: 9.0-gcc12/gh200
+      deploy:
+        daint: [gh200]
+        santis: [gh200]
+        clariden: [gh200]
+  scorep:
path: config.yaml
user: login: msimberg
body: ```suggestion
```
created_at: 2025-05-02T08:35:29Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,5 @@
+bootstrap:
+  spec: gcc@12
+gcc:
+  specs:
+  - gcc@12
path: recipes/scorep/9.0/gh200/compilers.yaml
user: login: msimberg
body: The answer offline was: both versions are needed for now. It's an open question whether scorep could use the compiler from a base/companion/user-environment uenv such as prgenv-gnu instead of the one used to build scorep itself. If that's possible, we could in the future deploy a single image per scorep version instead. Alternatively, it's possible that a scorep compiled with GCC 12 would be enough, as it could be compatible with applications using GCC 13.
created_at: 2025-05-02T11:48:59Z
author_association: COLLABORATOR

PR comments:
user: login: jgphpc
created_at: 2025-03-20T18:03:27Z
body: cscs-ci run alps;system=eiger;uarch=zen2;uenv=scorep:9.0.rc2
author_association: CONTRIBUTOR
user: login: jgphpc
created_at: 2025-03-20T18:09:35Z
body: cscs-ci run alps;system=eiger;uarch=zen2;uenv=scorep:9.0.rc2
author_association: CONTRIBUTOR
user: login: jgphpc
created_at: 2025-03-20T18:12:56Z
body: cscs-ci run alps;system=eiger;uarch=zen2;uenv=scorep:9.0.rc2
author_association: CONTRIBUTOR
user: login: jgphpc
created_at: 2025-03-20T18:19:58Z
body: cscs-ci run alps;system=eiger;uarch=zen2;uenv=scorep:9.0.rc2
author_association: CONTRIBUTOR
user: login: jgphpc
created_at: 2025-03-20T18:28:25Z
body: cscs-ci run alps;system=eiger;uarch=zen2;uenv=scorep:9.0.rc2
author_association: CONTRIBUTOR
user: login: msimberg
created_at: 2025-04-08T06:59:21Z
body: @jgphpc what's the status of this PR? Waiting for a non-rc release?
author_association: COLLABORATOR
user: login: jgphpc
created_at: 2025-04-08T12:47:11Z
body: 9.0 has been officially released. I am testing it, i will move this pr to wip
author_association: CONTRIBUTOR
user: login: jgphpc
created_at: 2025-04-29T08:44:32Z
body: cscs-ci run alps;system=daint;uarch=gh200;uenv=scorep:9.0
author_association: CONTRIBUTOR
user: login: jgphpc
created_at: 2025-04-29T09:05:07Z
body: not sure what's wrong [here](https://cicd-ext-mw.cscs.ch/ci/job/result/3690753405420143/64239695/9861232865)
author_association: CONTRIBUTOR
user: login: simonpintarelli
created_at: 2025-04-29T13:26:52Z
body: cscs-ci run alps;system=daint;uarch=gh200;uenv=scorep:9.0
author_association: MEMBER
user: login: simonpintarelli
created_at: 2025-04-29T13:39:11Z
body: > not sure what's wrong [here](https://cicd-ext-mw.cscs.ch/ci/job/result/3690753405420143/64239695/9861232865)

patches in scorep missing. Seems spack checks if all referenced file in a recipe are present, even if not required.
author_association: MEMBER
user: login: simonpintarelli
created_at: 2025-04-29T13:41:51Z
body: cscs-ci run alps;system=daint;uarch=gh200;uenv=scorep:9.0
author_association: MEMBER
user: login: jgphpc
created_at: 2025-04-30T06:35:17Z
body: cscs-ci run alps;system=daint;uarch=gh200;uenv=scorep:9.0
author_association: CONTRIBUTOR
user: login: jgphpc
created_at: 2025-04-30T14:59:44Z
body: cscs-ci run alps;system=daint;uarch=gh200;uenv=scorep:9.0_gcc12
cscs-ci run alps;system=daint;uarch=gh200;uenv=scorep:9.0_gcc13
author_association: CONTRIBUTOR
user: login: jgphpc
created_at: 2025-04-30T17:01:38Z
body: - [gcc12](https://cicd-ext-mw.cscs.ch/ci/pipeline/results/1440398897047560/52553985/1794461340?iid=2184&type=gitlab) 
- [gcc13](https://cicd-ext-mw.cscs.ch/ci/pipeline/results/1440398897047560/52553985/1794736974?iid=2191&type=gitlab)
author_association: CONTRIBUTOR
user: login: jgphpc
created_at: 2025-05-02T07:58:20Z
body: cscs-ci run alps;system=daint;uarch=gh200;uenv=scorep:9.0-gcc13
author_association: CONTRIBUTOR
user: login: jgphpc
created_at: 2025-05-02T08:25:14Z
body: cscs-ci run alps;system=clariden;uarch=gh200;uenv=scorep:9.0-gcc13
author_association: CONTRIBUTOR
user: login: jgphpc
created_at: 2025-05-02T08:47:57Z
body: cscs-ci run alps;system=clariden;uarch=gh200;uenv=scorep:9.0-gcc12
author_association: CONTRIBUTOR
user: login: jgphpc
created_at: 2025-05-02T09:46:57Z
body: - [x]  [gcc13](https://gitlab.com/cscs-ci/ci-testing/webhook-ci/mirrors/551234120955960/1440398897047560/-/jobs/9903149501)
- [x] [gcc12](https://gitlab.com/cscs-ci/ci-testing/webhook-ci/mirrors/551234120955960/1440398897047560/-/jobs/9903349284)
author_association: CONTRIBUTOR
user: login: msimberg
created_at: 2025-05-02T10:02:35Z
body: cscs-ci run alps;system=clariden;uarch=gh200;uenv=scorep:9.0-gcc13
author_association: COLLABORATOR
user: login: msimberg
created_at: 2025-05-02T10:02:43Z
body: cscs-ci run alps;system=santis;uarch=gh200;uenv=scorep:9.0-gcc12
author_association: COLLABORATOR
user: login: msimberg
created_at: 2025-05-02T10:02:48Z
body: cscs-ci run alps;system=santis;uarch=gh200;uenv=scorep:9.0-gcc13
author_association: COLLABORATOR
user: login: msimberg
created_at: 2025-05-02T10:02:54Z
body: cscs-ci run alps;system=daint;uarch=gh200;uenv=scorep:9.0-gcc12
author_association: COLLABORATOR
user: login: msimberg
created_at: 2025-05-02T10:02:59Z
body: cscs-ci run alps;system=daint;uarch=gh200;uenv=scorep:9.0-gcc13
author_association: COLLABORATOR
user: login: msimberg
created_at: 2025-05-02T10:40:40Z
body: cscs-ci run alps;system=santis;uarch=gh200;uenv=scorep:9.0-gcc12
author_association: COLLABORATOR
user: login: msimberg
created_at: 2025-05-02T10:40:43Z
body: cscs-ci run alps;system=santis;uarch=gh200;uenv=scorep:9.0-gcc13
author_association: COLLABORATOR
user: login: msimberg
created_at: 2025-05-02T11:46:33Z
body: Deployed 2 (versions) x 3 (systems) images.
author_association: COLLABORATOR