Skip to main content

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.

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.

ptd 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.

ptd 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:

ptd 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
ptd unir --types=1000,1001 trace1.prv

# Now you get a new trace: trace2.prv
ptd 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:

ptd 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.

ptd 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 comptar

This tool will count the occurences and estimate the uncompressed disk size of different records.

ptd comptar --all trace.prv

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.
ptd 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.

ptd comprovar trace.prv

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pertalde-0.1.5.tar.gz (62.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pertalde-0.1.5-py3-none-manylinux_2_34_x86_64.whl (5.1 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

pertalde-0.1.5-cp314-cp314-manylinux_2_34_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

pertalde-0.1.5-cp311-cp311-manylinux_2_28_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

File details

Details for the file pertalde-0.1.5.tar.gz.

File metadata

  • Download URL: pertalde-0.1.5.tar.gz
  • Upload date:
  • Size: 62.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.12.6

File hashes

Hashes for pertalde-0.1.5.tar.gz
Algorithm Hash digest
SHA256 2c9578fad453ccc5f25ce986a35c532ccff9a1777af77810aaf72fe59c303f32
MD5 5649281f4a59888944079faafb1eb447
BLAKE2b-256 b82b5ec98ca3e81d9f6ac9817585f57e24a4a02c1f93c1e489efcc2a313b6f15

See more details on using hashes here.

File details

Details for the file pertalde-0.1.5-py3-none-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pertalde-0.1.5-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 0a12a70e621bfe0091ec2ebb79d11598e03276618eda8def7b5c0506e3ba1f06
MD5 a65e6ffe234a21be47e6fa52da57cb42
BLAKE2b-256 303bcc991b8064404e32f38c23fccc5b490cc39bf2f2fbb2ed133e00cb5d0d4c

See more details on using hashes here.

File details

Details for the file pertalde-0.1.5-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pertalde-0.1.5-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ba21e35f76abb090cdb32354cc4dd383036a68f09c8f773d3713f54e81a0eda6
MD5 2c86a51fc70064328075f0bc5d5305f2
BLAKE2b-256 b8cd88d612d8f7da65fdfb3a7f370d34060ced1cdc36d1061d79ebe259e51f28

See more details on using hashes here.

File details

Details for the file pertalde-0.1.5-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pertalde-0.1.5-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3841e91877390556a1d188efa56f6cd3def6e1840c97e062290b4560996e821c
MD5 0576932e05af91324ab69dae97d50f46
BLAKE2b-256 5eaa379ffe764962fe646921c9efc8529fe0660b6b609ef680f2dd0babd74e97

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page