Extra-P, automated performance modeling for HPC applications

performance-visualization, performance-analysis, performance-modeling, scalability-analysis
pip install extrap==4.0.3



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.

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


  • Python 3.7 or higher
  • numpy
  • pycubexr
  • marshmallow
  • tqdm
  • PySide2 (for GUI)
  • matplotlib (for GUI)
  • pyobjc-framework-Cocoa (only for GUI on macOS)


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.


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 .

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) 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

The Extra-P command line interface has the following options.

FILEPATH Specify a file path for Extra-P to work with
-h, --help Show help message and exit
--version Show program's version number and exit
--log {debug, info, warning, error, critical} Set program's log level (default: warning)
Input options
--cube Load data from CUBE files
--text Load data from text files
--talpas Load data from Talpas data format
--json Load data from JSON or JSON Lines file
--extra-p-3 Load data from Extra-P 3 experiment
--scaling {weak, strong} Set weak or strong scaling when loading data from CUBE files (default: weak)
Modeling options
--median Use median values for computation instead of mean values
--modeler {default, basic, refining, multi-parameter} Selects the modeler for generating the performance models
--options KEY=VALUE [KEY=VALUE ...] Options for the selected modeler
--help-modeler {default, basic, refining, multi-parameter} Show help for modeler options and exit
Output options
--out OUTPUT_PATH Specify the output path for Extra-P results
--print {all, callpaths, metrics, parameters, functions} Set which information should be displayed after modeling (default: all)
--save-experiment EXPERIMENT_PATH Saves the experiment including all models as Extra-P experiment (if no extension is specified, ā€œ.extra-pā€ is appended)


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