Some command-line utilities on paraver traces.
Project description
pertalde
pertalde is a set of tools to manipulate Paraver traces. Paraver is a parallel performance analysis tool by the Performance Tools team at BSC, and is a parallel trace visualization system allowing for large scale trace execution analysis. Paraver can be obtained at https://tools.bsc.es/downloads.
How to install
pertalde is distributed as a PyPI package and thus can be installed
with pip. pertalde is supported only for Linux systems
(specifiacally: aarch64-unknown-linux-gnu).
python -m pip install pertalde
Suggestions for HPC clusters
Create a python environment
python -m venv ~/.pertalde_env
source ~/.pertalde_env/bin/activate
python -m pip install pertalde
When you don't have internet access
If you want to install pertalde in a remote machine where you don't have internet access, you can first download the package.
python -m pip download pertalde
This will download the package (a .whl file) which you can the install using
python -m pip install <package_name>.whl
Utilities
pertalde unir (i.e. parajuntar)
When you a trace with sparse semantic values, and/or with inconsistent
value per semantic across traces you can use pertalde unir. This will
use the values from the pcf files to unify the values based on their
semantic, and translate the prv files accordingly. You can also group
different event types together to unify their semantics.
How to use it.
If you had a trace with different event that share semantics but differ
in values. For a more specific example, lets say we have a trace.prv
with events 1000, 1001, 2000, 2001. Where events 1000 and
1001 share meaning between them, and 2000 and 2001 between them.
pertalde unir --types=1000,1001 --types=2000,2001 trace.prv
This would result in a trace.unir.prv file where now all values that
have the same name for 1000 and 1001 have also the same value. And
all the same for values 2000 and 2001.
If you have multiple traces with the same event but this event has
inconsistent values for the same semantic across traces, you can also
use pertalde unir. By running the same command on different traces,
the resulting event values will be common across traces also.
pertalde unir --types=1000,1001 trace1.prv trace2.prv
A practical example that combines these two modes is when you have multiple traces with OpenMP, and you want to compare the values among these traces:
pertalde unir \
--sufix unified_openmp \
--sort-values-by-name \ # Keep similar names closer in value
-t 60000018 \ # Executed parallel function
-t 60000118 \ # Executed parallel function line and file
-t 60000023 \ # Executed OpenMP task function
-t 60000123 \ # Executed OpenMP task function line and file
-t 60000024 \ # Instantiated OpenMP task function
-t 60000124 \ # Instantiated OpenMP task function line and file
-c \ # Compress the resulting trace
trace1.prv trace2.prv ; # Or more traces if necessary
In the case you get a new trace and you want it to have common
values with a trace you have already processed earlier you can make use
of the option --base-pcf.
# This produces trace1.unir.prv trace1.unir.pcf and trace1.unir.row
pertalde unir --types=1000,1001 trace1.prv
# Now you get a new trace: trace2.prv
pertalde unir --types=1000,1001 --base-pcf=trace1.unir.pcf trace2.prv
This will make event values from types 1000 and 1001, form
trace2.prv, consistent with those in trace1.prv.
This tool has preset gorups for specific tools. As this tool was
initially implemented to solve a common problem with neSmiK and
nsys2prv we have presets for this tools. For example, for nesmik you
could use:
pertalde unir --profile=nesmik trace.prv
pertalde separar
When you have a big trace that you want to analyse its common practice to filter it. This tool has a preset of filters that you can use without having to rely on a configuration generated from Paraver. Furthermore, it allows to run multiple filters on a single execution. Which results in generating the filters faster. Right now we have event filters for neSmiK, MPI, OpenMP, Counters, and Flushing. And we have a useful filter with a minimum duration threshold.
How to use it.
pertalde separar --compress --useful 100 --profile=mpi,counters trace.prv
This will generate a directory names test.partials, which will contain
3 different traces with names
trace.{useful,mpi,counters}.{prv.gz,pcf,row}. Notice that this tool
can also leverage processing the trace to compress it with the flag
--compress which is available for all subcommands that produce output
traces.
pertalde sincronitzar
If you get a trace that is not synchronized, you can use this tool to synchronize it based on an event. This is helpful when the merging process is very long, or you no longer have the unmerged files. This tool can only syncronize the MPI tasks.
# By default it will use the MPI init event.
pertalde syncronitzar trace.prv
pertalde comprovar
This tool basically will test a trace to check if its well formatted. If you are having problems with a trace, or are generating trace files, this tool can tell you where the trace has format issues.
pertalde comprovar trace.prv
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pertalde-0.1.1a0.tar.gz.
File metadata
- Download URL: pertalde-0.1.1a0.tar.gz
- Upload date:
- Size: 57.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba6c9ae920146f3a3e9425e73db798c434aaae8b7277a6f004d3a9d7f0d1fb2c
|
|
| MD5 |
d7ded0b094fb677bce8140c0b0568c7b
|
|
| BLAKE2b-256 |
c5f47007770e0e8c9e4fc7e1b280ea999b079473534328e302978281edc21054
|
File details
Details for the file pertalde-0.1.1a0-py3-none-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: pertalde-0.1.1a0-py3-none-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 12.7 MB
- Tags: Python 3, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24e2486d90ca5702dd699871ecd954dbf3c32e81641d2e838677f45bd22ed986
|
|
| MD5 |
173107647d4ae964205d94082f7f0191
|
|
| BLAKE2b-256 |
0ea53f77ea2e3faf94a5e679f2684105d77647152f230fe84f13d50a27489c5f
|