Skip to main content

Extra-P, automated performance modeling for HPC applications

Project description

Extra-P

Automated performance modeling for HPC applications

PyPI - Python Version GitHub release (latest by date) PyPI version PyPI - License GitHub issues GitHub pull requests GitHub Workflow Status

Screenshot of Extra-P Extra-P is an automatic performance-modeling tool that supports the user in the identification of scalability bugs. A scalability bug is a part of the program whose scaling behavior is unintentionally poor, that is, much worse than expected. A performance model is a formula that expresses a performance metric of interest such as execution time or energy consumption as a function of one or more execution parameters such as the size of the input problem or the number of processors.

Extra-P uses measurements of various performance metrics at different execution configurations as input to generate performance models of code regions (including their calling context) as a function of the execution parameters. All it takes to search for scalability issues even in full-blown codes is to run a manageable number of small-scale performance experiments, launch Extra-P, and compare the asymptotic or extrapolated performance of the worst instances to the expectations.

Extra-P generates not only a list of potential scalability bugs but also human-readable models for all performance metrics available such as floating-point operations or bytes sent by MPI calls that can be further analyzed and compared to identify the root causes of scalability issues.

The following video on the Laboratory for Parallel Programming @ TUDa YouTube channel provides a quick introduction to Extra-P.

IMAGE ALT TEXT HERE

Extra-P is developed by TU Darmstadt – in collaboration with ETH Zurich.

For questions regarding Extra-P, please send a message to extra-p-support@lists.parallel.informatik.tu-darmstadt.de.


Table of Contents

  1. Requirements
  2. Installation
  3. How to use it
  4. License
  5. Citation
  6. Publications

Requirements

  • Python 3.10 or higher
  • numpy
  • pycubexr
  • marshmallow
  • packaging
  • tqdm
  • kaitaistruct
  • protobuf
  • itanium_demangler
  • sympy
  • typing-extensions
  • sklearn
  • PySide6 (for GUI)
  • matplotlib (for GUI)
  • pyvista (for GUI)
  • pyvistaqt (for GUI)
  • pyobjc-framework-Cocoa (only for GUI on macOS)

Installation

Use the following command to install Extra-P and all required packages via pip.

python -m pip install extrap --upgrade

The --upgrade forces the installation of a new version if a previous version is already installed.

Usage

Extra-P can be used in two ways, either using the command-line interface or the graphical user interface. More information about the usage of Extra-P with both interfaces can be found in the quick start guide.

Note
Extra-P is designed for weak-scaling, therefore, directly modeling of strong-scaling behaviour is not supported. Instead of modeling the runtime of your strong-scaling experiment, you can model the resource consumption, i.e., the runtime times the number of processors. Extra-P automatically offers this conversion, if it detects that strong-scaling data was loaded. If you are loading files that contain per-thread/per-rank data you should select the scaling-type upfront to run the conversion already during the import.

Graphical user interface

The graphical user interface can be started by executing the extrap-gui command.

Command line interface

The command line interface is available under the extrap command:

extrap OPTIONS (--cube | --text | --talpas | --json | --extra-p-3 | --experiment) FILEPATH

You can use different input formats as shown in the examples below:

  • Text files: extrap --text test/data/text/one_parameter_1.txt
  • JSON files: extrap --json test/data/json/input_1.JSON
  • Talpas files: extrap --talpas test/data/talpas/talpas_1.txt
  • Create model and save it to text file at the given path: extrap --out test.txt --text test/data/text/one_parameter_1.txt

You can find an overview about all command line options under docs/command-line-options.md.

License

BSD 3-Clause "New" or "Revised" License

Citation

Please cite Extra-P in your publications if it helps your research:

Alexandru Calotoiu, Marcin Copik, Fabian Czappa, Alexander Geiß, Gustavo Morais, Marcus Ritter, Sergei Shudler, Torsten Hoefler, Felix Wolf: Extra-P – Empirical Performance Modeling Made Easy. Frontiers in High Performance Computing, 3–2025, 2026. 10.3389/fhpcp.2025.1714042

@Article{calotoiu_extra-p_2026,
  author          = {Calotoiu, Alexandru and Copik, Marcin and Czappa, Fabian and Geiß, Alexander and Morais, Gustavo and Ritter, Marcus and Shudler, Sergei and Hoefler, Torsten and Wolf, Felix},
  title           = {Extra-{P} – {Empirical} {Performance} {Modeling} {Made} {Easy}},
  journal         = {Frontiers in High Performance Computing},
  year            = {2026},
  volume          = {3–2025},
  issn            = {2813–7337},
  doi             = {10.3389/fhpcp.2025.1714042}
}

Selected Publications

  1. Alexandru Calotoiu, Torsten Hoefler, Marius Poke, Felix Wolf: Using automated performance modeling to find scalability bugs in complex codes. In Proc. of the International Conference on High Performance Computing, Networking, Storage and Analysis (SC '13), ACM, 2013. DOI

  2. Alexandru Calotoiu, David Beckingsale, Christopher W. Earl, Torsten Hoefler, Ian Karlin, Martin Schulz, Felix Wolf: Fast Multi-Parameter Performance Modeling. In Proc. of the 2016 IEEE International Conference on Cluster Computing ( CLUSTER), Taipei, Taiwan, pages 172–181, IEEE, September 2016. PDF

  3. Marcus Ritter, Alexandru Calotoiu, Sebastian Rinke, Thorsten Reimann, Torsten Hoefler, Felix Wolf: Learning Cost-Effective Sampling Strategies for Empirical Performance Modeling. In Proc. of the 34th IEEE International Parallel and Distributed Processing Symposium (IPDPS), New Orleans, LA, USA, pages 884–895, IEEE, May 2020. PDF

  4. Marcus Ritter, Alexander Geiß, Johannes Wehrstein, Alexandru Calotoiu, Thorsten Reimann, Torsten Hoefler, Felix Wolf: Noise-Resilient Empirical Performance Modeling with Deep Neural Networks. In Proc. of the 35th IEEE International Parallel and Distributed Processing Symposium (IPDPS), Portland, Oregon, USA, pages 23–34, IEEE, May 2021. PDF

  5. Alexander Geiß, Téodora Hovi, Alexandru Calotoiu, Felix Wolf: Validating the Performance of GPU Ports Using Differential Performance Models. Future Generation Computer Systems, 174: 1–17, January 2026. DOI

  6. Marcus Ritter, Benedict Naumann, Alexandru Calotoiu, Sebastian Rinke, Thorsten Reimann, Torsten Hoefler, Felix Wolf: Cost-Effective Empirical Performance Modeling. Transactions on Parallel and Distributed Systems, 37: 575–592, February 2026. PDF

  7. Alexandru Calotoiu, Marcin Copik, Fabian Czappa, Alexander Geiß, Gustavo Morais, Marcus Ritter, Sergei Shudler, Torsten Hoefler, Felix Wolf: Extra-P – Empirical Performance Modeling Made Easy. Frontiers in High Performance Computing, 3–2025, March 2026. DOI

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

extrap-4.3.0b1.tar.gz (7.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

extrap-4.3.0b1-py3-none-any.whl (362.8 kB view details)

Uploaded Python 3

File details

Details for the file extrap-4.3.0b1.tar.gz.

File metadata

  • Download URL: extrap-4.3.0b1.tar.gz
  • Upload date:
  • Size: 7.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for extrap-4.3.0b1.tar.gz
Algorithm Hash digest
SHA256 e6ff8206fd778c7cbd1cddcf7d8263a4be1c248183d8bd9fd5a0314f65489e96
MD5 93c16f414456b4522ba6cb607d162b28
BLAKE2b-256 6c7cf0d8a3e2cb9743497a032e3d950d8a6297212ec861ecab98717629069c5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for extrap-4.3.0b1.tar.gz:

Publisher: python-publish.yml on extra-p/extrap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file extrap-4.3.0b1-py3-none-any.whl.

File metadata

  • Download URL: extrap-4.3.0b1-py3-none-any.whl
  • Upload date:
  • Size: 362.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for extrap-4.3.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 c46a0613e0197ca9b9186f211d93f9bc5618d9ae3f0c3f960fbd8b3e46f41ba0
MD5 a561a15dfe01c2342ac3c2b75336bedb
BLAKE2b-256 e2185179135d88669b92226fb3a8dec1c8d26b2353c2fbac33490ce5c30703ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for extrap-4.3.0b1-py3-none-any.whl:

Publisher: python-publish.yml on extra-p/extrap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page