https://github.com/precice/profiling
Python tools for processing preCICE profiling data
https://github.com/precice/profiling
Last synced: 11 months ago
JSON representation
Python tools for processing preCICE profiling data
- Host: GitHub
- URL: https://github.com/precice/profiling
- Owner: precice
- License: mit
- Created: 2025-06-18T15:58:06.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-07-01T13:30:08.000Z (12 months ago)
- Last Synced: 2025-07-01T14:39:32.201Z (12 months ago)
- Language: Python
- Size: 24.4 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# preCICE profiling tools
## Workflow
1. _Optional_ Enable `` in the preCICE configuration of your case to get the profiling information.
2. Run the preCICE simulation.
3. Run `precice-profiling-merge` to combine all emitted profiling files of the simulation into a single `profiling.json` file.
4. Analyze the solvers:
* Use `precice-profiling-analyze` to get a breakdown of an individual solver.
* Use `precice-profiling-trace` to visualize the data.
* Use `precice-profiling-export` to export the data as CSV to import in other software.
## Tools
### merge
Merges profiling files emitted by each rank of each participant into a single easily portable file.
Creates a `profiling.json` by default.
### export
Transforms all events to a tabular format and exports the result as a CSV format.
The columns `Participant`, and `Rank` can be used to filter the dataset to extract individual participants or specific ranks.
Reads `profiling.json` and creates `profiling.csv` by default.
### trace
Transforms all events to the [Google Trace Format](https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU) which can be visualized by tools such as `about::tracing` in Chromium based browsers or [perfetto.dev](https://ui.perfetto.dev/).
Reads `profiling.json` and creates `trace.json` by default.
### analyze
Analyzes a given solver and returns a table of all timings including some statistics based on their duration.
Reads `profiling.json` by default.
## HPC users
HPC users or users of locked down clusters without easy access to pip can download the [`merge` command](https://raw.githubusercontent.com/precice/profiling/refs/heads/main/preciceprofiling/merge.py) as a standalone file and run it without installing additional dependencies.
```console
wget -O precice-profiling-merge https://raw.githubusercontent.com/precice/profiling/refs/heads/main/preciceprofiling/merge.py
chmod +x precice-profiling-merge
```
## Licensing
This repository contains modified part of the the `precice-profiling` script, which is part of the preCICE library (precice/precice `tools/profiling/precice-profiling`) and licensed under the LGPv3 license.
The two copyright holders David Schneider (@davidscn david.schneider@ipvs.uni-stuttgart.de) and Frédéric Simonis (@fsimonis frederic.simonis@ipvs.uni-stuttgart.de) decided on 23. June 2025 15:00 CET to rerelease the content of the `precice-profiling` script in this repository under the MIT license.