diff --git a/Custom_EasyBlocks/score_p.py b/Custom_EasyBlocks/score_p.py new file mode 100644 index 0000000000000000000000000000000000000000..4c6f49c2054b909d9175a337696d7d6ae7fada4e --- /dev/null +++ b/Custom_EasyBlocks/score_p.py @@ -0,0 +1,153 @@ +## +# Copyright 2013-2023 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 software using the Score-P configuration style (e.g., Cube, OTF2, Scalasca, and Score-P), +implemented as an easyblock. + +@author: Kenneth Hoste (Ghent University) +@author: Bernd Mohr (Juelich Supercomputing Centre) +@author: Markus Geimer (Juelich Supercomputing Centre) +@author: Alexander Grund (TU Dresden) +@author: Christian Feld (Juelich Supercomputing Centre) +""" +import easybuild.tools.toolchain as toolchain +from easybuild.easyblocks.generic.configuremake import ConfigureMake +from easybuild.tools.build_log import EasyBuildError +from easybuild.tools.modules import get_software_root, get_software_libdir +from distutils.version import LooseVersion + + +class EB_Score_minus_P(ConfigureMake): + """ + Support for building and installing software using the Score-P configuration style (e.g., Cube, OTF2, Scalasca, + and Score-P). + """ + + def configure_step(self, *args, **kwargs): + """Configure the build, set configure options for compiler, MPI and dependencies.""" + # On non-cross-compile platforms, specify compiler and MPI suite explicitly. This is much quicker and safer + # than autodetection. In Score-P build-system terms, the following platforms are considered cross-compile + # architectures: + # + # - Cray XT/XE/XK/XC series + # - Fujitsu FX10, FX100 & K computer + # - IBM Blue Gene series + # + # Of those, only Cray is supported right now. + tc_fam = self.toolchain.toolchain_family() + if tc_fam != toolchain.CRAYPE: + # since 2022/12 releases: --with-nocross-compiler-suite=(gcc|ibm|intel|oneapi|nvhpc|pgi|clang|aocc|amdclang) + comp_opts = { + # assume that system toolchain uses a system-provided GCC + toolchain.SYSTEM: 'gcc', + toolchain.GCC: 'gcc', + toolchain.IBMCOMP: 'ibm', + toolchain.INTELCOMP: 'intel', + toolchain.NVHPC: 'nvhpc', + toolchain.PGI: 'pgi', + } + nvhpc_since = { + 'Score-P': '8.0', + 'Scalasca': '2.6.1', + 'OTF2': '3.0.2', + 'CubeW': '4.8', + 'CubeLib': '4.8', + 'CubeGUI': '4.8', + } + if LooseVersion(self.version) < LooseVersion(nvhpc_since.get(self.name, '0')): + comp_opts[toolchain.NVHPC] = 'pgi' + + comp_fam = self.toolchain.comp_family() + if comp_fam in comp_opts: + self.cfg.update('configopts', "--with-nocross-compiler-suite=%s" % comp_opts[comp_fam]) + else: + raise EasyBuildError("Compiler family %s not supported yet (only: %s)", + comp_fam, ', '.join(comp_opts.keys())) + + # --with-mpi=(bullxmpi|hp|ibmpoe|intel|intel2|intelpoe|lam|mpibull2|mpich|mpich2|mpich3|openmpi| + # platform|scali|sgimpt|sun) + # + # Notes: + # - intel: Intel MPI v1.x (ancient & unsupported) + # - intel2: Intel MPI v2.x and higher + # - intelpoe: IBM POE MPI for Intel platforms + # - mpich: MPICH v1.x (ancient & unsupported) + # - mpich2: MPICH2 v1.x + # - mpich3: MPICH v3.x & MVAPICH2 + # This setting actually only affects options passed to the MPI (Fortran) compiler wrappers. + # And since MPICH v3.x-compatible options were already supported in MVAPICH2 v1.7, it is + # safe to use 'mpich3' for all supported versions although MVAPICH2 is based on MPICH v3.x + # only since v1.9b. + # + # With minimal toolchains, packages using this easyblock may be built with a non-MPI toolchain (e.g., OTF2). + # In this case, skip passing the '--with-mpi' option. + mpi_opts = { + toolchain.INTELMPI: 'intel2', + toolchain.OPENMPI: 'openmpi', + toolchain.MPICH: 'mpich3', # In EB terms, MPICH means MPICH 3.x + toolchain.MPICH2: 'mpich2', + toolchain.MVAPICH2: 'mpich3', + } + mpi_fam = self.toolchain.mpi_family() + if mpi_fam is not None: + if mpi_fam in mpi_opts: + self.cfg.update('configopts', "--with-mpi=%s" % mpi_opts[mpi_fam]) + else: + raise EasyBuildError("MPI family %s not supported yet (only: %s)", + mpi_fam, ', '.join(mpi_opts.keys())) + + # Auto-detection for dependencies mostly works fine, but hard specify paths anyway to have full control + # + # Notes: + # - binutils: Pass include/lib directories separately, as different directory layouts may break Score-P's + # configure, see https://github.com/geimer/easybuild-easyblocks/pull/4#issuecomment-219284755 + deps = { + 'binutils': ['--with-libbfd-include=%s/include', + '--with-libbfd-lib=%%s/%s' % get_software_libdir('binutils', fs=['libbfd.a'])], + 'libunwind': ['--with-libunwind=%s'], + # Older versions use Cube + 'Cube': ['--with-cube=%s/bin'], + # Recent versions of Cube are split into CubeLib and CubeW(riter) + 'CubeLib': ['--with-cubelib=%s/bin'], + 'CubeWriter': ['--with-cubew=%s/bin'], + 'CUDA': ['--enable-cuda', '--with-libcudart=%s'], + 'OTF2': ['--with-otf2=%s/bin'], + 'OPARI2': ['--with-opari2=%s/bin'], + 'PAPI': ['--with-papi-header=%s/include', '--with-papi-lib=%%s/%s' % get_software_libdir('PAPI')], + 'PDT': ['--with-pdt=%s/bin'], + 'Qt': ['--with-qt=%s'], + 'SIONlib': ['--with-sionlib=%s/bin'], + } + for (dep_name, dep_opts) in deps.items(): + dep_root = get_software_root(dep_name) + if dep_root: + for dep_opt in dep_opts: + try: + dep_opt = dep_opt % dep_root + except TypeError: + pass # Ignore subtitution error when there is nothing to substitute + self.cfg.update('configopts', dep_opt) + + super(EB_Score_minus_P, self).configure_step(*args, **kwargs) diff --git a/Golden_Repo/s/Scalasca/Scalasca-2.6.1-gompi-2022a.eb b/Golden_Repo/s/Scalasca/Scalasca-2.6.1-gompi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..5f8789e53e07bb0db0b84dca79cd887c0c1b9a6c --- /dev/null +++ b/Golden_Repo/s/Scalasca/Scalasca-2.6.1-gompi-2022a.eb @@ -0,0 +1,64 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2023 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Scalasca' +version = '2.6.1' + +homepage = 'https://www.scalasca.org/' +description = """ +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. +""" + +toolchain = {'name': 'gompi', 'version': '2022a'} + +source_urls = ['https://apps.fz-juelich.de/scalasca/releases/scalasca/%(version_major_minor)s/dist'] +sources = [SOURCELOWER_TAR_GZ] +checksums = [ + 'a0dbc3de82a6c0fe598de9e340513cff2882c199410a632d3a7f073ba921c7e7', # scalasca-2.6.1.tar.gz +] +builddependencies = [ + ('CubeWriter', '4.8'), +] + +dependencies = [ + ('CubeGUI', '4.8'), + ('CubeLib', '4.8'), + ('OTF2', '3.0.2'), + ('Score-P', '8.0'), +] + +sanity_check_paths = { + 'files': ['bin/scalasca', ('lib/libpearl.replay.a', 'lib64/libpearl.replay.a')], + 'dirs': [], +} + +# note that modextrapaths can be used for relative paths only +modextrapaths = { + # Ensure that local metric documentation is found by CubeGUI + 'CUBE_DOCPATH': 'share/doc/scalasca/patterns' +} + +modextravars = { + # Specifies an optional list of colon separated paths identifying + # suitable file systems for tracing. If set, the file system of + # trace measurements has to match at least one of the specified + # file systems. + 'SCAN_TRACE_FILESYS': '/p/project:/p/scratch:/p/cscratch:/p/fastdata:/p/largedata:/p/largedata2' +} + +moduleclass = 'perf' diff --git a/Golden_Repo/s/Scalasca/Scalasca-2.6.1-gpsmpi-2022a.eb b/Golden_Repo/s/Scalasca/Scalasca-2.6.1-gpsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..8680f59128f65d43a1be5ad62687e6e3748f73c4 --- /dev/null +++ b/Golden_Repo/s/Scalasca/Scalasca-2.6.1-gpsmpi-2022a.eb @@ -0,0 +1,64 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2023 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Scalasca' +version = '2.6.1' + +homepage = 'https://www.scalasca.org/' +description = """ +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. +""" + +toolchain = {'name': 'gpsmpi', 'version': '2022a'} + +source_urls = ['https://apps.fz-juelich.de/scalasca/releases/scalasca/%(version_major_minor)s/dist'] +sources = [SOURCELOWER_TAR_GZ] +checksums = [ + 'a0dbc3de82a6c0fe598de9e340513cff2882c199410a632d3a7f073ba921c7e7', # scalasca-2.6.1.tar.gz +] +builddependencies = [ + ('CubeWriter', '4.8'), +] + +dependencies = [ + ('CubeGUI', '4.8'), + ('CubeLib', '4.8'), + ('OTF2', '3.0.2'), + ('Score-P', '8.0'), +] + +sanity_check_paths = { + 'files': ['bin/scalasca', ('lib/libpearl.replay.a', 'lib64/libpearl.replay.a')], + 'dirs': [], +} + +# note that modextrapaths can be used for relative paths only +modextrapaths = { + # Ensure that local metric documentation is found by CubeGUI + 'CUBE_DOCPATH': 'share/doc/scalasca/patterns' +} + +modextravars = { + # Specifies an optional list of colon separated paths identifying + # suitable file systems for tracing. If set, the file system of + # trace measurements has to match at least one of the specified + # file systems. + 'SCAN_TRACE_FILESYS': '/p/project:/p/scratch:/p/cscratch:/p/fastdata:/p/largedata:/p/largedata2' +} + +moduleclass = 'perf' diff --git a/Golden_Repo/s/Scalasca/Scalasca-2.6.1-ipsmpi-2022a.eb b/Golden_Repo/s/Scalasca/Scalasca-2.6.1-ipsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..713847a0baf58535137af02559506c1b7c6783f8 --- /dev/null +++ b/Golden_Repo/s/Scalasca/Scalasca-2.6.1-ipsmpi-2022a.eb @@ -0,0 +1,64 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2023 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Scalasca' +version = '2.6.1' + +homepage = 'https://www.scalasca.org/' +description = """ +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. +""" + +toolchain = {'name': 'ipsmpi', 'version': '2022a'} + +source_urls = ['https://apps.fz-juelich.de/scalasca/releases/scalasca/%(version_major_minor)s/dist'] +sources = [SOURCELOWER_TAR_GZ] +checksums = [ + 'a0dbc3de82a6c0fe598de9e340513cff2882c199410a632d3a7f073ba921c7e7', # scalasca-2.6.1.tar.gz +] +builddependencies = [ + ('CubeWriter', '4.8'), +] + +dependencies = [ + ('CubeGUI', '4.8'), + ('CubeLib', '4.8'), + ('OTF2', '3.0.2'), + ('Score-P', '8.0'), +] + +sanity_check_paths = { + 'files': ['bin/scalasca', ('lib/libpearl.replay.a', 'lib64/libpearl.replay.a')], + 'dirs': [], +} + +# note that modextrapaths can be used for relative paths only +modextrapaths = { + # Ensure that local metric documentation is found by CubeGUI + 'CUBE_DOCPATH': 'share/doc/scalasca/patterns' +} + +modextravars = { + # Specifies an optional list of colon separated paths identifying + # suitable file systems for tracing. If set, the file system of + # trace measurements has to match at least one of the specified + # file systems. + 'SCAN_TRACE_FILESYS': '/p/project:/p/scratch:/p/cscratch:/p/fastdata:/p/largedata:/p/largedata2' +} + +moduleclass = 'perf' diff --git a/Golden_Repo/s/Scalasca/Scalasca-2.6.1-npsmpic-2022a.eb b/Golden_Repo/s/Scalasca/Scalasca-2.6.1-npsmpic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..f9cf4940cc051c81f41e2a313fafc6edf5dd58e4 --- /dev/null +++ b/Golden_Repo/s/Scalasca/Scalasca-2.6.1-npsmpic-2022a.eb @@ -0,0 +1,64 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2023 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Scalasca' +version = '2.6.1' + +homepage = 'https://www.scalasca.org/' +description = """ +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. +""" + +toolchain = {'name': 'npsmpic', 'version': '2022a'} + +source_urls = ['https://apps.fz-juelich.de/scalasca/releases/scalasca/%(version_major_minor)s/dist'] +sources = [SOURCELOWER_TAR_GZ] +checksums = [ + 'a0dbc3de82a6c0fe598de9e340513cff2882c199410a632d3a7f073ba921c7e7', # scalasca-2.6.1.tar.gz +] +builddependencies = [ + ('CubeWriter', '4.8'), +] + +dependencies = [ + ('CubeGUI', '4.8'), + ('CubeLib', '4.8'), + ('OTF2', '3.0.2'), + ('Score-P', '8.0'), +] + +sanity_check_paths = { + 'files': ['bin/scalasca', ('lib/libpearl.replay.a', 'lib64/libpearl.replay.a')], + 'dirs': [], +} + +# note that modextrapaths can be used for relative paths only +modextrapaths = { + # Ensure that local metric documentation is found by CubeGUI + 'CUBE_DOCPATH': 'share/doc/scalasca/patterns' +} + +modextravars = { + # Specifies an optional list of colon separated paths identifying + # suitable file systems for tracing. If set, the file system of + # trace measurements has to match at least one of the specified + # file systems. + 'SCAN_TRACE_FILESYS': '/p/project:/p/scratch:/p/cscratch:/p/fastdata:/p/largedata:/p/largedata2' +} + +moduleclass = 'perf' diff --git a/Golden_Repo/s/Scalasca/Scalasca-2.6.1-nvompic-2022a.eb b/Golden_Repo/s/Scalasca/Scalasca-2.6.1-nvompic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..54391439a1596e69a2a0f5941675eabb60b99985 --- /dev/null +++ b/Golden_Repo/s/Scalasca/Scalasca-2.6.1-nvompic-2022a.eb @@ -0,0 +1,64 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2023 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Scalasca' +version = '2.6.1' + +homepage = 'https://www.scalasca.org/' +description = """ +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. +""" + +toolchain = {'name': 'nvompic', 'version': '2022a'} + +source_urls = ['https://apps.fz-juelich.de/scalasca/releases/scalasca/%(version_major_minor)s/dist'] +sources = [SOURCELOWER_TAR_GZ] +checksums = [ + 'a0dbc3de82a6c0fe598de9e340513cff2882c199410a632d3a7f073ba921c7e7', # scalasca-2.6.1.tar.gz +] +builddependencies = [ + ('CubeWriter', '4.8'), +] + +dependencies = [ + ('CubeGUI', '4.8'), + ('CubeLib', '4.8'), + ('OTF2', '3.0.2'), + ('Score-P', '8.0'), +] + +sanity_check_paths = { + 'files': ['bin/scalasca', ('lib/libpearl.replay.a', 'lib64/libpearl.replay.a')], + 'dirs': [], +} + +# note that modextrapaths can be used for relative paths only +modextrapaths = { + # Ensure that local metric documentation is found by CubeGUI + 'CUBE_DOCPATH': 'share/doc/scalasca/patterns' +} + +modextravars = { + # Specifies an optional list of colon separated paths identifying + # suitable file systems for tracing. If set, the file system of + # trace measurements has to match at least one of the specified + # file systems. + 'SCAN_TRACE_FILESYS': '/p/project:/p/scratch:/p/cscratch:/p/fastdata:/p/largedata:/p/largedata2' +} + +moduleclass = 'perf' diff --git a/Golden_Repo/s/Score-P/Score-P-8.0-gompi-2022a.eb b/Golden_Repo/s/Score-P/Score-P-8.0-gompi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..e6bd13e326e920ebdec660b10507a3264cb183c2 --- /dev/null +++ b/Golden_Repo/s/Score-P/Score-P-8.0-gompi-2022a.eb @@ -0,0 +1,67 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2023 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Score-P' +version = '8.0' + +homepage = 'https://www.score-p.org' +description = """ +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. +""" + +toolchain = {'name': 'gompi', 'version': '2022a'} + +source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-%(version)s'] +sources = ['scorep-%(version)s.tar.gz'] +checksums = [ + '4c0f34f20999f92ebe6ca1ff706d0846b8ce6cd537ffbedb49dfaef0faa66311', # scorep-8.0.tar.gz +] + +builddependencies = [ + ('CUDA', '11.7', '', SYSTEM), + ('CubeLib', '4.8'), + ('CubeWriter', '4.8'), + # Unwinding/sampling support (optional): + ('libunwind', '1.6.2'), +] + +dependencies = [ + # binutils is implicitly available via GCC toolchain + ('OPARI2', '2.0.7'), + ('OTF2', '3.0.2'), + # Hardware counter support (optional): + ('PAPI', '7.0.0'), +] + +configopts = '--enable-shared --with-machine-name=$SYSTEMNAME ' +# Enable CUDA support +configopts += '--with-libOpenCL=$EBROOTCUDA/targets/x86_64-linux ' +# Make OMPT default, if available +configopts += '--enable-default=ompt ' + +postinstallcmds = ['make installcheck'] + +sanity_check_paths = { + 'files': ['bin/scorep', 'include/scorep/SCOREP_User.h', + ('lib/libscorep_adapter_mpi_event.a', 'lib64/libscorep_adapter_mpi_event.a'), + ('lib/libscorep_adapter_mpi_event.%s' % SHLIB_EXT, 'lib64/libscorep_adapter_mpi_event.%s' % SHLIB_EXT)], + 'dirs': [], +} + +# Ensure that local metric documentation is found by CubeGUI +modextrapaths = {'CUBE_DOCPATH': 'share/doc/scorep/profile'} + +moduleclass = 'perf' diff --git a/Golden_Repo/s/Score-P/Score-P-8.0-gpsmpi-2022a.eb b/Golden_Repo/s/Score-P/Score-P-8.0-gpsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..2c2c2e730ad4d19daebb291df1d6d47da364c042 --- /dev/null +++ b/Golden_Repo/s/Score-P/Score-P-8.0-gpsmpi-2022a.eb @@ -0,0 +1,67 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2023 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Score-P' +version = '8.0' + +homepage = 'https://www.score-p.org' +description = """ +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. +""" + +toolchain = {'name': 'gpsmpi', 'version': '2022a'} + +source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-%(version)s'] +sources = ['scorep-%(version)s.tar.gz'] +checksums = [ + '4c0f34f20999f92ebe6ca1ff706d0846b8ce6cd537ffbedb49dfaef0faa66311', # scorep-8.0.tar.gz +] + +builddependencies = [ + ('CUDA', '11.7', '', SYSTEM), + ('CubeLib', '4.8'), + ('CubeWriter', '4.8'), + # Unwinding/sampling support (optional): + ('libunwind', '1.6.2'), +] + +dependencies = [ + # binutils is implicitly available via GCC toolchain + ('OPARI2', '2.0.7'), + ('OTF2', '3.0.2'), + # Hardware counter support (optional): + ('PAPI', '7.0.0'), +] + +configopts = '--enable-shared --with-machine-name=$SYSTEMNAME ' +# Enable CUDA support +configopts += '--with-libOpenCL=$EBROOTCUDA/targets/x86_64-linux ' +# Make OMPT default, if available +configopts += '--enable-default=ompt ' + +postinstallcmds = ['make installcheck'] + +sanity_check_paths = { + 'files': ['bin/scorep', 'include/scorep/SCOREP_User.h', + ('lib/libscorep_adapter_mpi_event.a', 'lib64/libscorep_adapter_mpi_event.a'), + ('lib/libscorep_adapter_mpi_event.%s' % SHLIB_EXT, 'lib64/libscorep_adapter_mpi_event.%s' % SHLIB_EXT)], + 'dirs': [], +} + +# Ensure that local metric documentation is found by CubeGUI +modextrapaths = {'CUBE_DOCPATH': 'share/doc/scorep/profile'} + +moduleclass = 'perf' diff --git a/Golden_Repo/s/Score-P/Score-P-8.0-ipsmpi-2022a.eb b/Golden_Repo/s/Score-P/Score-P-8.0-ipsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..a18ff27e2094607088c6ec4444dead981d0ab24d --- /dev/null +++ b/Golden_Repo/s/Score-P/Score-P-8.0-ipsmpi-2022a.eb @@ -0,0 +1,67 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2023 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Score-P' +version = '8.0' + +homepage = 'https://www.score-p.org' +description = """ +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. +""" + +toolchain = {'name': 'ipsmpi', 'version': '2022a'} + +source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-%(version)s'] +sources = ['scorep-%(version)s.tar.gz'] +checksums = [ + '4c0f34f20999f92ebe6ca1ff706d0846b8ce6cd537ffbedb49dfaef0faa66311', # scorep-8.0.tar.gz +] + +builddependencies = [ + ('CUDA', '11.7', '', SYSTEM), + ('CubeLib', '4.8'), + ('CubeWriter', '4.8'), + # Unwinding/sampling support (optional): + ('libunwind', '1.6.2'), +] + +dependencies = [ + # binutils is implicitly available via GCC toolchain + ('OPARI2', '2.0.7'), + ('OTF2', '3.0.2'), + # Hardware counter support (optional): + ('PAPI', '7.0.0'), +] + +configopts = '--enable-shared --with-machine-name=$SYSTEMNAME ' +# Enable CUDA support +configopts += '--with-libOpenCL=$EBROOTCUDA/targets/x86_64-linux ' +# Make OMPT default, if available +configopts += '--enable-default=ompt ' + +postinstallcmds = ['make installcheck'] + +sanity_check_paths = { + 'files': ['bin/scorep', 'include/scorep/SCOREP_User.h', + ('lib/libscorep_adapter_mpi_event.a', 'lib64/libscorep_adapter_mpi_event.a'), + ('lib/libscorep_adapter_mpi_event.%s' % SHLIB_EXT, 'lib64/libscorep_adapter_mpi_event.%s' % SHLIB_EXT)], + 'dirs': [], +} + +# Ensure that local metric documentation is found by CubeGUI +modextrapaths = {'CUBE_DOCPATH': 'share/doc/scorep/profile'} + +moduleclass = 'perf' diff --git a/Golden_Repo/s/Score-P/Score-P-8.0-npsmpic-2022a.eb b/Golden_Repo/s/Score-P/Score-P-8.0-npsmpic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..8f94f74a178c8d97f2952eca1f95be18e2b74eb7 --- /dev/null +++ b/Golden_Repo/s/Score-P/Score-P-8.0-npsmpic-2022a.eb @@ -0,0 +1,67 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2023 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Score-P' +version = '8.0' + +homepage = 'https://www.score-p.org' +description = """ +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. +""" + +toolchain = {'name': 'npsmpic', 'version': '2022a'} + +source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-%(version)s'] +sources = ['scorep-%(version)s.tar.gz'] +checksums = [ + '4c0f34f20999f92ebe6ca1ff706d0846b8ce6cd537ffbedb49dfaef0faa66311', # scorep-8.0.tar.gz +] + +builddependencies = [ + ('CUDA', '11.7', '', SYSTEM), + ('CubeLib', '4.8'), + ('CubeWriter', '4.8'), + # Unwinding/sampling support (optional): + ('libunwind', '1.6.2'), +] + +dependencies = [ + # binutils is implicitly available via GCC toolchain + ('OPARI2', '2.0.7'), + ('OTF2', '3.0.2'), + # Hardware counter support (optional): + ('PAPI', '7.0.0'), +] + +configopts = '--enable-shared --with-machine-name=$SYSTEMNAME ' +# Enable CUDA support +configopts += '--with-libOpenCL=$EBROOTCUDA/targets/x86_64-linux ' +# Make OMPT default, if available +configopts += '--enable-default=ompt ' + +postinstallcmds = ['make installcheck'] + +sanity_check_paths = { + 'files': ['bin/scorep', 'include/scorep/SCOREP_User.h', + ('lib/libscorep_adapter_mpi_event.a', 'lib64/libscorep_adapter_mpi_event.a'), + ('lib/libscorep_adapter_mpi_event.%s' % SHLIB_EXT, 'lib64/libscorep_adapter_mpi_event.%s' % SHLIB_EXT)], + 'dirs': [], +} + +# Ensure that local metric documentation is found by CubeGUI +modextrapaths = {'CUBE_DOCPATH': 'share/doc/scorep/profile'} + +moduleclass = 'perf' diff --git a/Golden_Repo/s/Score-P/Score-P-8.0-nvompic-2022a.eb b/Golden_Repo/s/Score-P/Score-P-8.0-nvompic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..02b50836587cdb5151b2995786c225c39c76a728 --- /dev/null +++ b/Golden_Repo/s/Score-P/Score-P-8.0-nvompic-2022a.eb @@ -0,0 +1,67 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2023 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Score-P' +version = '8.0' + +homepage = 'https://www.score-p.org' +description = """ +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. +""" + +toolchain = {'name': 'nvompic', 'version': '2022a'} + +source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-%(version)s'] +sources = ['scorep-%(version)s.tar.gz'] +checksums = [ + '4c0f34f20999f92ebe6ca1ff706d0846b8ce6cd537ffbedb49dfaef0faa66311', # scorep-8.0.tar.gz +] + +builddependencies = [ + ('CUDA', '11.7', '', SYSTEM), + ('CubeLib', '4.8'), + ('CubeWriter', '4.8'), + # Unwinding/sampling support (optional): + ('libunwind', '1.6.2'), +] + +dependencies = [ + # binutils is implicitly available via GCC toolchain + ('OPARI2', '2.0.7'), + ('OTF2', '3.0.2'), + # Hardware counter support (optional): + ('PAPI', '7.0.0'), +] + +configopts = '--enable-shared --with-machine-name=$SYSTEMNAME ' +# Enable CUDA support +configopts += '--with-libOpenCL=$EBROOTCUDA/targets/x86_64-linux ' +# Make OMPT default, if available +configopts += '--enable-default=ompt ' + +postinstallcmds = ['make installcheck'] + +sanity_check_paths = { + 'files': ['bin/scorep', 'include/scorep/SCOREP_User.h', + ('lib/libscorep_adapter_mpi_event.a', 'lib64/libscorep_adapter_mpi_event.a'), + ('lib/libscorep_adapter_mpi_event.%s' % SHLIB_EXT, 'lib64/libscorep_adapter_mpi_event.%s' % SHLIB_EXT)], + 'dirs': [], +} + +# Ensure that local metric documentation is found by CubeGUI +modextrapaths = {'CUBE_DOCPATH': 'share/doc/scorep/profile'} + +moduleclass = 'perf'