You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`sample-series/`| Real metrics collected from a WfExS workflow run, used throughout this README as examples |
66
66
|`sample-charts/`| Pre-generated chart outputs (SVG/PDF/PNG) from the sample series |
67
67
|`sample-work-to-measure/`| Ready-to-use scripts to download and run example workloads to measure |
68
-
|`sample_cpuinfo/`| Example `/proc/cpuinfo` files (Intel and AMD) for testing `cpuinfo-tdp-finder.py` and `modelname-tdp-finder.py` without needing a real machine |
68
+
|`sample_cpuinfo/`| Example `/proc/cpuinfo` files (Intel and AMD) for testing `cpuinfo-tdp-finder` and `modelname-tdp-finder` without needing a real machine |
69
69
|`onboarding/`| Self-contained worked example: a full metrics collection, chart generation and aggregation walkthrough for new users |
70
70
|`sample/`| Legacy single-process sample from 2018, predating the current process-tree approach |
71
71
|`tests/`| Unit tests for the core collector module |
@@ -74,35 +74,38 @@ treecript/
74
74
75
75
## Installation
76
76
77
-
### Prerequisites
77
+
### Prerequisites (singularity)
78
+
79
+
- Linux OS
80
+
-[Singularity](https://sylabs.io/docs/) or [Apptainer](https://apptainer.org/).
| Keep things simple, already have either Apptainer or Singularity installed and you only want to gather metrics |**Option 1 — Singularity**|
93
+
| Keep things simple and already have Python installed |**Option 2 — pip + venv**|
94
+
| Already use conda or manage multiple projects/environments |**Option 3 — Conda**|
95
+
| Work on an HPC or shared cluster environment (e.g. BSC) |**Option 1 — Singularity** or **Option 3 — Conda**|
96
+
| Work on a machine with a corporate or university firewall | Either — both have firewall notes in their respective sections |
91
97
92
98
---
93
99
94
-
### Choosing a constraints file
100
+
### Choosing a constraints file (only needed for option 2 or option 3)
95
101
96
-
The repository ships per-version constraints files under the `installation/` directory to ensure a working set of dependencies. Pick the one that matches your setup:
102
+
The repository ships per-version constraints files under the `installation/` directory to ensure a working set of dependencies. Pick the one that matches your setup (including the Python version):
| Ubuntu 22.04 on WSL (Windows) |`installation/constraints-3.x_Ubuntu-22.04-wsl.txt`|
108
+
| Ubuntu 24.04 on WSL (Windows) |`installation/constraints-3.x_Ubuntu-24.04-wsl.txt`|
106
109
107
110
> **WSL** = Windows Subsystem for Linux — Ubuntu running inside Windows rather than directly on hardware. If you are running Ubuntu natively on your machine, use the plain constraints file. To check:
108
111
>
@@ -118,7 +121,55 @@ python3 --version
118
121
119
122
---
120
123
121
-
### Option 1: pip + virtual environment (venv)
124
+
### Option 1: Singularity
125
+
126
+
#### Alternative A: Fetch a pre-built image (only for metrics gathering)
127
+
128
+
Pre-build singularity images are listed at https://github.com/inab/treecript/pkgs/container/treecript .
129
+
130
+
They can be fetched using Apptainer/Singularity just using `singularity pull` subcommand:
131
+
132
+
```bash
133
+
# Replace exec by the tag of the version you want to use
Use this if you already have Python installed on your system and don't use conda. This is the lightest option — it creates an isolated Python environment using only tools that come built into Python, with no additional software required.
> **Network issues?** If you are behind a corporate or university firewall (e.g. Fortiguard), add `--no-check-certificate` to the `wget` command.
@@ -155,7 +206,7 @@ source TREECRIPT/bin/activate
155
206
156
207
---
157
208
158
-
### Option 2: Conda environment
209
+
### Option 3: Conda environment
159
210
160
211
Use this if you already work with Anaconda or Miniconda, or if you prefer conda for managing environments across multiple projects. Conda handles both Python and system-level dependencies, which makes it particularly well suited for HPC or shared computing environments.
`metrics-aggregator.py` digests the collected time series and estimates energy consumption per process subtree. It requires the CPU TDP value in Watts.
411
+
`metrics-aggregator` digests the collected time series and estimates energy consumption per process subtree. It requires the CPU TDP value in Watts.
The optional `command_filter` argument filters results to show only processes whose command matches the string (e.g. `"docker run"` to focus on Docker steps).
@@ -482,13 +546,13 @@ The `legacy/` directory contains older Bash-based scripts that predate the curre
482
546
483
547
### `execution-metrics-collector.sh`
484
548
485
-
The original Bash wrapper for launching a command and monitoring it. It runs the command in the background, captures the PID, and calls `process-metrics-collector.py` directly:
549
+
The original Bash wrapper for launching a command and monitoring it. It runs the command in the background, captures the PID, and calls `process-metrics-collector` directly:
This has been superseded by `execution-metrics-collector.py`, which provides the same functionality in a more portable and maintainable way. The sample series included in this repository was originally collected using this script:
555
+
This has been superseded by `execution-metrics-collector`, which provides the same functionality in a more portable and maintainable way. The sample series included in this repository was originally collected using this script:
@@ -499,15 +563,15 @@ This has been superseded by `execution-metrics-collector.py`, which provides the
499
563
500
564
### `plotGraph.sh`
501
565
502
-
The original gnuplot-based visualization script. It reads the collected CSV files and generates `.pdf` charts using `gnuplot` (requires `apt install gnuplot`). It has been superseded by `plotGraph.py`, which generates richer charts without requiring gnuplot.
566
+
The original gnuplot-based visualization script. It reads the collected CSV files and generates `.pdf` charts using `gnuplot` (requires `apt install gnuplot`). It has been superseded by `plotGraph`, which generates richer charts without requiring gnuplot.
503
567
504
568
```bash
505
569
./legacy/plotGraph.sh {metrics_csv_files...}
506
570
```
507
571
508
572
### `plot-metrics.sh`
509
573
510
-
An earlier helper script for plotting individual metric files. Also superseded by `plotGraph.py`.
574
+
An earlier helper script for plotting individual metric files. Also superseded by `plotGraph`.
511
575
512
576
> These scripts are no longer actively maintained. For all new usage, prefer the Python equivalents.
0 commit comments