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-reportwill generate a performance report in HTML from the input path of JSON files provided.metadatawill read in environment variables available in different CI solutions and enrich the generated JSON with additional git-related information.download-gitlabwill 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
DLBinstallation. Optimally withPAPIsupport.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