Skip to content
Snippets Groups Projects
Commit eda17533 authored by Michael Knobloch's avatar Michael Knobloch
Browse files

Merge branch 'scorep_scalasca_for_2023' into '2023'

Score-P and Scalasca for Stages/2023

See merge request software-team/easybuild!1648
parents 2c10272f f278bbb7
No related branches found
No related tags found
No related merge requests found
Showing with 808 additions and 0 deletions
##
# 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)
##
# 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'
##
# 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'
##
# 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'
##
# 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'
##
# 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'
##
# 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'
##
# 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'
##
# 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'
##
# 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'
##
# 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'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment