Skip to content
Snippets Groups Projects
Commit 5e90db67 authored by Marc Schlutter's avatar Marc Schlutter
Browse files

Add modules for the iimpi/2024a toolchain

parent 4cd5f2bc
No related branches found
No related tags found
1 merge request!10Add modules for the iimpi/2024a toolchain
##
# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild
#
# Copyright:: Copyright 2018-2024 Juelich Supercomputing Centre, Germany
# Authors:: Markus Geimer <m.geimer@fz-juelich.de>
# Christian Feld <c.feld@fz-juelich.de>
# Marc Schluetter <m.schluetter@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 = 'CubeLib'
version = '4.8.2'
homepage = 'https://www.scalasca.org/software/cube-4.x/download.html'
description = """
Cube, which is used as performance report explorer for Scalasca and Score-P,
is a generic tool for displaying a multi-dimensional performance space
consisting of the dimensions (i) performance metric, (ii) call path, and
(iii) system resource. Each dimension can be represented as a tree, where
non-leaf nodes of the tree can be collapsed or expanded to achieve the
desired level of granularity.
This module provides the Cube general purpose C++ library component and
command-line tools.
"""
toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/cubelib/tags/cubelib-%(version)s']
sources = [SOURCELOWER_TAR_GZ]
checksums = [
'd6fdef57b1bc9594f1450ba46cf08f431dd0d4ae595c47e2f3454e17e4ae74f4', # cubelib-4.8.2.tar.gz
]
builddependencies = [
# use same binutils version that was used when building GCCcore
('binutils', '2.42'),
('pkgconf', '2.2.0'),
]
dependencies = [
('zlib', '1.3.1'),
]
configopts = '--enable-shared'
sanity_check_paths = {
'files': ['bin/cubelib-config',
('lib/libcube4.a', 'lib64/libcube4.a'),
('lib/libcube4.%s' % SHLIB_EXT, 'lib64/libcube4.%s' % SHLIB_EXT)],
'dirs': ['include/cubelib'],
}
moduleclass = 'perf'
##
# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild
#
# Copyright:: Copyright 2018-2024 Juelich Supercomputing Centre, Germany
# Authors:: Markus Geimer <m.geimer@fz-juelich.de>
# Christian Feld <c.feld@fz-juelich.de>
# Marc Schluetter <m.schluetter@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 = 'CubeWriter'
version = '4.8.2'
homepage = 'https://www.scalasca.org/software/cube-4.x/download.html'
description = """
Cube, which is used as performance report explorer for Scalasca and Score-P,
is a generic tool for displaying a multi-dimensional performance space
consisting of the dimensions (i) performance metric, (ii) call path, and
(iii) system resource. Each dimension can be represented as a tree, where
non-leaf nodes of the tree can be collapsed or expanded to achieve the
desired level of granularity.
This module provides the Cube high-performance C writer library component.
"""
toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/cubew/tags/cubew-%(version)s']
sources = ['cubew-%(version)s.tar.gz']
checksums = [
'4f3bcf0622c2429b8972b5eb3f14d79ec89b8161e3c1cc5862ceda417d7975d2', # cubew-4.8.2.tar.gz
]
builddependencies = [
# use same binutils version that was used when building GCCcore
('binutils', '2.42'),
('pkgconf', '2.2.0'),
]
dependencies = [
('zlib', '1.3.1'),
]
configopts = '--enable-shared'
sanity_check_paths = {
'files': ['bin/cubew-config',
('lib/libcube4w.a', 'lib64/libcube4w.a'),
('lib/libcube4w.%s' % SHLIB_EXT, 'lib64/libcube4w.%s' % SHLIB_EXT)],
'dirs': ['include/cubew'],
}
moduleclass = 'perf'
##
# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild
# Copyright:: Copyright 2013-2024 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>
# Marc Schluetter <m.schluetter@fz-juelich.de>
# License:: 3-clause BSD
#
# This work is based on experiences from the UNITE project
# http://apps.fz-juelich.de/unite/
##
easyblock = 'ConfigureMake'
name = 'OPARI2'
version = '2.0.8'
homepage = 'https://www.score-p.org'
description = """
OPARI2, the successor of Forschungszentrum Juelich's OPARI, 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.
"""
toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/opari2/tags/opari2-%(version)s']
sources = [SOURCELOWER_TAR_GZ]
checksums = [
'196e59a2a625e6c795a6124c61e784bad142f9f38df0b4fa4d435ba9b9c19721', # opari2-2.0.8.tar.gz
]
builddependencies = [
# use same binutils version that was used when building GCCcore
('binutils', '2.42'),
]
sanity_check_paths = {
'files': ['bin/opari2', 'include/opari2/pomp2_lib.h'],
'dirs': [],
}
moduleclass = 'perf'
##
# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild
# Copyright:: Copyright 2013-2024 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>
# Marc Schluetter <m.schluetter@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 = 'OTF2'
version = '3.0.3'
homepage = 'https://www.score-p.org'
description = """
The Open Trace Format 2 is a highly scalable, memory efficient event trace
data format plus support library. It is the new standard trace format for
Scalasca, Vampir, and TAU and is open for other tools.
"""
toolchain = {'name': 'GCCcore', 'version': '13.2.3'}
source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/otf2/tags/otf2-%(version)s']
sources = [SOURCELOWER_TAR_GZ]
checksums = [
'18a3905f7917340387e3edc8e5766f31ab1af41f4ecc5665da6c769ca21c4ee8', # otf2-3.0.3.tar.gz
]
builddependencies = [
# use same binutils version that was used when building GCCcore
('binutils', '2.42'),
# SIONlib container support (optional):
('SIONlib', '1.7.7', '-tools'),
]
configopts = '--enable-shared'
sanity_check_paths = {
'files': ['bin/otf2-config', 'include/otf2/otf2.h',
('lib/libotf2.a', 'lib64/libotf2.a'),
('lib/libotf2.%s' % SHLIB_EXT, 'lib64/libotf2.%s' % SHLIB_EXT)],
'dirs': [],
}
moduleclass = 'perf'
##
# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild
# Copyright:: Copyright 2013-2024 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>
# Marc Schluetter <m.schluetter@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': 'iimpi', 'version': '2024a'}
source_urls = ['https://apps.fz-juelich.de/scalasca/releases/scalasca/%(version_major_minor)s/dist']
sources = [SOURCELOWER_TAR_GZ]
#patches = [
# 'Scalasca-2.6.1_nowarn_omp_pragmas.patch',
#]
checksums = [
'a0dbc3de82a6c0fe598de9e340513cff2882c199410a632d3a7f073ba921c7e7', # scalasca-2.6.1.tar.gz
# '53fd1305f75b7552208ff5375d0d754eb97d3eec45f67e506e9b55d2b16361ac', # Scalasca-2.6.1_nowarn_omp_pragmas.patch
]
builddependencies = [
('CubeWriter', '4.8.2'),
]
dependencies = [
('CubeGUI', '4.8.2'),
('CubeLib', '4.8.2'),
('OTF2', '3.0.3'),
('Score-P', '8.4'),
]
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': '/scratch:/mnt'
}
moduleclass = 'perf'
##
# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild
# Copyright:: Copyright 2013-2024 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>
# Marc Schluetter <m.schluetter@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.4'
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': 'iimpi', 'version': '2024a'}
source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-%(version)s']
sources = ['scorep-%(version)s.tar.gz']
checksums = [
'7bbde9a0721d27cc6205baf13c1626833bcfbabb1f33b325a2d67976290f7f8a', # scorep-8.4.tar.gz
]
builddependencies = [
('CUDA', '12.6.0', '', SYSTEM),
('CubeLib', '4.8.2'),
('CubeWriter', '4.8.2'),
# Unwinding/sampling support (optional):
('libunwind', '1.8.1'),
]
dependencies = [
# binutils is implicitly available via GCC toolchain
('OPARI2', '2.0.8'),
('OTF2', '3.0.3'),
# Hardware counter support (optional):
('PAPI', '7.1.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 '
# oneApi compatibility with nvcc in Score-P tests
configopts += 'NVCC_PREPEND_FLAGS=-allow-unsupported-compiler MPICC="mpicc -cc=icx" MPICXX="mpicxx -cxx=icpx" '
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.
Finish editing this message first!
Please register or to comment