TALP-Pages

TALP-Pages is a suite of tools that allows the post-processing of JSON files generated by TALP. Additionally, it provides some scripts to allow for an easy integration into CI/CD setups to continuously monitor a code’s performance, tightly coupled to the development workflow.

The main goal was to provide a set of scripts that enable teams to easily monitor their application’s performance and quickly identify potential bottlenecks.

Note

With the release of DLB 3.6.0 we also provide support for GPU runs in TALP-Pages.

Warning

Please, be aware that TALP-Pages is still an experimental feature that is introduced in the 3.5.0 release.

Note

We are currently working on extending this documentation.

Installation

To install TALP-Pages, you can use an python package manger that can access the PyPI repository. With pip you can install TALP-Pages like:

pip install talp-pages

Note

We currently require a Python version >= 3.9 for executing and >= 3.12 for testing.

Overview

After installation you have access to the talp command which currently has 3 different features implemented:

  • ci-report will generate a performance report in HTML from the input path of JSON files provided.

  • metadata will read in environment variables available in different CI solutions and enrich the generated JSON with additional git-related information.

  • download-gitlab will download artifacts from previous jobs. This is an essential tool to track the applications performance over time.

Folder structure

TALP-Pages needs your .json files obtained through TALP to be in a folder structure similar to the tree output shown below.

.
`-- talp
    |-- mesh_1
    |   |-- comparison_of_rc
    |   |   |-- talp_1x112.json
    |   |   |-- talp_2x56.json
    |   |   `-- talp_4x28.json
    |   |-- strong_scaling
    |   |   |-- talp_8x14.json
    |   |   `-- talp_8x28.json
    |   `-- weak_scaling
    |       |-- talp_8x14.json
    |       `-- talp_8x28.json
    `-- mesh_2
        |-- strong_scaling
        |   |-- talp_8x14.json
        |   `-- talp_8x28.json
        `-- weak_scaling
            |-- talp_8x14.json
            `-- talp_8x28.json

With this folder structure you can generate a report like:

talp ci-report -i ./talp -o output

I want to use TALP-Pages on my laptop

If you just did a scaling experiment with the code you’re trying to analyze, you can also use TALP-Pages to generate HTML report you can view with any browser locally.

I want to use TALP-Pages in my CI/CD framework

We currently provide example implementations for GitLab CI and for GitHub Actions.

There are some prerequisites your application needs to fulfill, that are independent of the CI framework used:

  • The machine you want to run your code in has a DLB installation. Optimally with PAPI support.

  • Your code is using MPI or OpenMP or both and is primarily running on CPUs.

  • Your code is written in C/C++ or Fortran

  • Optionally already have some coarse-grain code annotations in place.

GitLab

In order to use TALP-Pages in a GitLab CI environment you should fulfill some additional requirements:

  • The machine you want to run your application on has some way to interface with a GitLab runner. (Don’t worry if you don’t have Jacamar. Normally no sudo rights are required to run the gitlab-runner on the login node.)

  • Your GitLab instance has the GitLab Pages feature activated

For an example workflow you can have a look at our repository

GitHub

In order to use TALP-Pages in a GitHub Actions. environment you should fulfill some additional requirements:

  • The machine you want to run your application on has some way to interface with a self hosted GitHub runner. Normally no sudo rights are required to run the GitHub runner.

  • Note, that the available GitHub runners don’t provide access to hardware counters, so we recommend using a self-hosted runner.

For an example workflow you can have a look at our repository