Virtual Institute — High Productivity Supercomputing

Score-P

Scalable Performance Measurement Infrastructure for Parallel Codes

The Score-P measurement infrastructure is a highly scalable and easy-to-use tool suite for profiling and event tracing of HPC applications.

It has been created in the German BMBF project SILC and the US DOE project PRIMA and will be maintained and enhanced in a number of follow-up projects such as LMAC, Score-E, and HOPSA. Score-P is developed under a BSD 3-Clause License and governed by a meritocratic governance model.

General

Score-P offers the user a maximum of convenience by supporting a number of analysis tools. Currently, it works with Scalasca, Vampir, and Tau and is open for other tools. Score-P comes together with the new Open Trace Format Version 2, the Cube4 profiling format and the OPARI2 instrumenter (see below).

Score-P is available under the New BSD Open Source license.

Get in contact

If you have any comments or questions regarding the use and installation of Score-P, or want to report a bug you discovered, please send an email to
support@score-p.org,

or contact the development team and users in the [matrix] room
#score-p-user-group:hpc.rwth-aachen.de.

Feel free to sign up for the Score-P News mailing list to receive the latest news about

  • new releases,
  • tutorials,
  • workshops,
  • and other Score-P-related events.

Overview article and citing

Please refer to the Score-P measurement infrastructure by citing the overview article "Score-P: A Joint Performance Measurement Run-Time Infrastructure for Periscope, Scalasca, TAU, and Vampir" (this link provides citations in various formats) (PDF), or use the DOI 10.1007/978-3-642-31476-6_7 directly.

Version-specific DOIs of the software can be found on Score-P's Zenodo page or in the download section below.

Release downloads

The current release tarballs of Score-P, OTF2, and OPARI2 as well as of Cube are available for download (see below for development builds):

  • Score-P 8.4
    sha256sum: 7bbde9a0721d27cc6205baf13c1626833bcfbabb1f33b325a2d67976290f7f8a
    Note that Score-P 8.4 is supposed to work with the OTF2 3.0 series, CubeW and CubeLib in versions 4.8.2 and later, and the OPARI2 2.0 series. Score-P tarballs include compatible versions of OTF2, CubeW, CubeLib, and OPARI2. Please see the ChangeLog file for the recent modifications, the OPEN_ISSUES file for known limitations, and the INSTALL file for installation instructions.
    DOI
  • OTF2 3.0.3
    sha256sum: 18a3905f7917340387e3edc8e5766f31ab1af41f4ecc5665da6c769ca21c4ee8
    Note that OTF2 3.0.x is not supposed to work with the Score-P 7.x series. Please see the ChangeLog file for the recent modifications and the OPEN_ISSUES file for known limitations.
    DOI
  • Cube 4.x on scalasca.org

  • OPARI2 2.0.8
    sha256sum: 196e59a2a625e6c795a6124c61e784bad142f9f38df0b4fa4d435ba9b9c19721
    Please see the ChangeLog file for the recent modifications and the OPEN_ISSUES file for known limitations.
    DOI

Development downloads

In addition to the release tarballs, please find recent CI approved development builds at these locations (with limited support though):

Access to source code repository

The ready-to-use tarballs are created from our source-code repository. A read-only mirror of that repository is publicly available at gitlab.com: https://gitlab.com/score-p/scorep

The project can be forked and issues can be created. A basic CICD configuration is in place that runs on pushes. Please follow the README to install additional requirements needed for Score-P development.

So far, there is just a repository for Score-P, not for it's dependencies.

Documentation

After installation you will find documentation under <prefix>/share/<package>/doc. Alternatively you can browse the latest documentation on-line or download a pdf:

  • Score-P documentation (html |pdf)
  • OTF2 documentation (html |pdf)
    OTF2 3.0 Python bindings documentation (html)
  • Cube 4.x documentation site (scalasca.org)
  • OPARI2 documentation (html |pdf)

 

Score-P Instrumentation and Run-Time Measurement

Score-P is the central component and incorporates all other components. It contains the code instrumentation functionality supporting various methods and it performs the run-time data collection in the parallel environment.

OTF2 - The Open Trace Format Version 2

The Open Trace Format 2 is a highly scalable, memory efficient event trace data format plus support library. It is the standard trace format for Scalasca, Vampir, and Tau and is open for other tools.

OTF2 is the common successor format for the Open Trace Format (OTF) and the Epilog trace format. It preserves the essential features as well as most record types of both and introduces new features such as support for multiple read/write substrates, in-place time stamp manipulation, and on-the-fly token translation. In particular, it will avoid copying during unification of parallel event streams.

Cube 4 Profiling Data Format

Cube4 is a highly scalable, memory efficient, flexible profile format with support libraries, a set of tools and a GUI. It will become the new standard profile format for Scalasca and Score-P and is open for other tools.

Cube4 is the successor profile format of the Cube3 profile format. It preserves the Cube3 data model and extends its internal mechanisms for saving profile data. In particular, it is able to deal with large amounts of data, and supports dynamic loading and incremental writing of data. In contrast to Cube3, Cube4 is a hybrid format. Instances consist of an XML anchor file and a set of binary files that store the profile data in a single binary archive.

For backward compatibility, Cube4 will provide reading support for the Cube3 profile format (former Scalasca default).

OPARI2 OpenMP instrumenter

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. Please find a link to the current tarball in the download section.

Score-P Plugins

Score-P plugins provide an easy way to extend the functionality of Score-P for specific use-cases. There are two different plugin interfaces: metrics and substrates. The former enables developers to implement new metric sources to be consumed by Score-P that integrate seamlessly with the exiting metric sources. The latter allows the developer to add new event consumers besides the existing profiling and tracing, e.g., to evaluate recorded data at runtime. The overview article Extending the Functionality of Score-P Through Plugins: Interfaces and Use Cases introduces these plugins.

In order to write you own plugins, please consult the examples in the Score-P documentation:

Alternatively, please survey the collection of existing plugins at our Github repository.

Supported Performance Tools

Score-P is designed as common generic instrumentation and run-time data collection infrastructure for a number of performance analysis tools.

Currently, the following tools are working with the Score-P software:

Further contributors are:

 

The development was initially funded by BMBF/Germany and DOE/USA.

 

If you have any questions or encounter bugs, please don't hesitate to contact us under support@score-p.org.