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.

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


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.3a0.tar.gz (56.8 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.3a0-py3-none-manylinux_2_34_x86_64.whl (12.7 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

pertalde-0.1.3a0-py3-none-manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

pertalde-0.1.3a0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

pertalde-0.1.3a0-py3-none-macosx_11_0_arm64.whl (4.6 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file pertalde-0.1.3a0.tar.gz.

File metadata

  • Download URL: pertalde-0.1.3a0.tar.gz
  • Upload date:
  • Size: 56.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.3

File hashes

Hashes for pertalde-0.1.3a0.tar.gz
Algorithm Hash digest
SHA256 f13045f7e8f336fb777992f64e58f3591f217dbdee57fcec98a848aa3028bc0e
MD5 41ec656ebacdcf96047073546a21ccf9
BLAKE2b-256 adf6e6c66e40b547051314d614af88f4fa621de6ca8bfeadadf0a3e55e2b0e30

See more details on using hashes here.

File details

Details for the file pertalde-0.1.3a0-py3-none-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pertalde-0.1.3a0-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4ec58b4c1239c17c7a3d878905455fcb20c474f6a4c6dfa1d19b08f3ce5adec4
MD5 400bd959c0d612377dfd743e0e91b6d3
BLAKE2b-256 04dc40c0b7b0fa014d9b51a312a724042a738f49eda2465ff60e55a5e915f1f6

See more details on using hashes here.

File details

Details for the file pertalde-0.1.3a0-py3-none-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pertalde-0.1.3a0-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b768dce5120cb975882e2e664b01b7223ea22727e90cc18de14460f5a9e5afd3
MD5 bfc23e81bc25bd88fe34558e1b50ed3f
BLAKE2b-256 ac815bef607b72a25ef47ee2d1edb9291aa33a75ddd445004bf0a75a2dead11e

See more details on using hashes here.

File details

Details for the file pertalde-0.1.3a0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pertalde-0.1.3a0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b798da4e21d0629438b0289cd705977a4d7030e81eca3625b656700388274b11
MD5 d29b9b89ef53e6c59edfafd7fc02cf51
BLAKE2b-256 76b46701de09d9bb0e3b1bb895113cbf8a08e0c95653a0e299ad4fea3d7e576c

See more details on using hashes here.

File details

Details for the file pertalde-0.1.3a0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pertalde-0.1.3a0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 df2dbc23e89116afa629510fac5f94425b13abf08dac63dfa5990f0ee73cd96c
MD5 30f0ccf51e794a2227efa897c9509bec
BLAKE2b-256 ec8a0cc736882004d9851cd2722f2ebc15b1cb093b5a5f7c1f055ee328e5022d

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