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.

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 GitLab CI

In order to use TALP-Pages in a GitLab CI environment the following how-to-guide assumes the following prerequisites:

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

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

  • Your GitLab instance has the GitLab Pages feature activated

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

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

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

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