{"id":29430274,"url":"https://github.com/precice/profiling","last_synced_at":"2025-07-12T17:06:24.423Z","repository":{"id":300778116,"uuid":"1004430755","full_name":"precice/profiling","owner":"precice","description":"Python tools for processing preCICE profiling data","archived":false,"fork":false,"pushed_at":"2025-07-01T13:30:08.000Z","size":25,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-01T14:39:32.201Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/precice.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"custom":"https://precice.org/community-support-precice"}},"created_at":"2025-06-18T15:58:06.000Z","updated_at":"2025-07-01T13:29:55.000Z","dependencies_parsed_at":"2025-06-23T15:47:08.482Z","dependency_job_id":null,"html_url":"https://github.com/precice/profiling","commit_stats":null,"previous_names":["precice/profiling"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/precice/profiling","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/precice%2Fprofiling","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/precice%2Fprofiling/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/precice%2Fprofiling/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/precice%2Fprofiling/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/precice","download_url":"https://codeload.github.com/precice/profiling/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/precice%2Fprofiling/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265024860,"owners_count":23699621,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-12T17:06:23.526Z","updated_at":"2025-07-12T17:06:24.413Z","avatar_url":"https://github.com/precice.png","language":"Python","funding_links":["https://precice.org/community-support-precice"],"categories":[],"sub_categories":[],"readme":"# preCICE profiling tools\n\n## Workflow\n\n1. _Optional_ Enable `\u003cprofiling mode=\"all\"/\u003e` in the preCICE configuration of your case to get the profiling information.\n2. Run the preCICE simulation.\n3. Run `precice-profiling-merge` to combine all emitted profiling files of the simulation into a single `profiling.json` file.\n4. Analyze the solvers:\n    * Use `precice-profiling-analyze` to get a breakdown of an individual solver.\n    * Use `precice-profiling-trace` to visualize the data.\n    * Use `precice-profiling-export` to export the data as CSV to import in other software.\n\n\n## Tools\n\n### merge\n\nMerges profiling files emitted by each rank of each participant into a single easily portable file.\nCreates a `profiling.json` by default.\n\n### export\n\nTransforms all events to a tabular format and exports the result as a CSV format.\nThe columns `Participant`, and `Rank` can be used to filter the dataset to extract individual participants or specific ranks.\n\nReads `profiling.json` and creates `profiling.csv` by default.\n\n### trace\n\nTransforms 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/).\n\nReads `profiling.json` and creates `trace.json` by default.\n\n### analyze\n\nAnalyzes a given solver and returns a table of all timings including some statistics based on their duration.\n\nReads `profiling.json` by default.\n\n## HPC users\n\nHPC 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.\n\n```console\nwget -O precice-profiling-merge https://raw.githubusercontent.com/precice/profiling/refs/heads/main/preciceprofiling/merge.py\nchmod +x precice-profiling-merge\n```\n\n## Licensing\n\nThis 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.\nThe 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprecice%2Fprofiling","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprecice%2Fprofiling","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprecice%2Fprofiling/lists"}