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
This document tracks hypotheses to be validated in the benchmarking process, organized by **Tested** and **To Be Tested** sections. Each hypothesis includes the rationale and expected outcome.
4
+
5
+
## To Be Tested
6
+
7
+
1.**Statistical Sufficiency of 30 Iterations**
8
+
-**Hypothesis**: Running 30 iterations per measurement will yield sufficient data for statistical analysis of energy results, ensuring reliability in evaluating variability.
9
+
-**Expected Outcome**: Consistent patterns emerge within 30 iterations, showing clear trends in energy measurements without requiring additional runs.
10
+
-**Rationale**: 30 iterations are often a threshold for normal distribution in statistical sampling.
11
+
12
+
2.**Validity of `NB_CPU_OPS` Values `[10^7, 10^8, 10^9]`**
13
+
-**Hypothesis**: Using `NB_CPU_OPS` values of `[10^7, 10^8, 10^9]` allows all measurements to complete within the allocated G5K reservation time.
14
+
-**Expected Outcome**: These values will yield consistent, complete data sets without running into time constraints.
15
+
-**Rationale**: Choosing `NB_CPU_OPS` values that finish within the reservation time maximizes efficiency and resource usage while keeping results comprehensive.
16
+
17
+
3.**Post-Mortem Mode Accuracy for SmartWatts**
18
+
-**Hypothesis**: Running SmartWatts in post-mortem mode will still produce accurate energy measurement results, suitable for evaluating the precision of PowerAPI tools.
19
+
-**Expected Outcome**: SmartWatts post-mortem results closely match real-time energy data.
20
+
-**Rationale**: Save another set of stress-ng would be intesting. No proof of difference in precision have been demonstrated between CSV and MongoDB output mode for HWPC Sensor.
21
+
22
+
4.**Feasibility of Storing Results on NFS**
23
+
-**Hypothesis**: The average size of each aggregated results file will be under 3.32 MB, allowing for efficient storage within the 25GB per site NFS limit.
24
+
-**Expected Outcome**: Average file size per node stays within the 3.32 MB limit, avoiding storage issues.
25
+
-**Rationale**: Storage constraints on NFS necessitate a size estimation for scalability.
26
+
27
+
5.**Parallel Execution of HWPC Sensor & Perf**
28
+
-**Hypothesis**: HWPC Sensor and `perf` measurements can run concurrently on the same `stress-ng` process without interference or measurement degradation.
29
+
-**Expected Outcome**: Both HWPC and `perf` output valid data when run in parallel, with no notable interference.
30
+
-**Rationale**: Efficient benchmarking may require concurrent measurements to maximize data collection without extending reservation times.
Copy file name to clipboardExpand all lines: README.md
+80-1Lines changed: 80 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,83 @@
1
+
# PowerAPI Framework Benchmarks
2
+
3
+
Here’s how the **"What it does"** section could look based on the content you provided:
4
+
5
+
---
6
+
7
+
## What It Does
8
+
9
+
This repository contains the source code for generating and running benchmarks for the **PowerAPI Framework**. These benchmarks are designed to adapt to the configuration and architecture of underlying nodes in the **Grid5000** infrastructure.
10
+
11
+
### Key Processes:
12
+
13
+
1.**Gather Node Information**: The benchmarks start by scraping the Grid5000 API to collect details about all available nodes.
14
+
2.**Reuse Existing Job List (Optional)**: If a `jobs.yaml` file exists, the tool can leverage it to initialize the job list.
15
+
3.**Generate Bash Scripts**: For each filtered node, a custom bash script is generated using templates located in the `/templates` directory.
16
+
4.**Submit Jobs via OAR**: The generated scripts are submitted to corresponding nodes through SSH using **OAR**, ensuring that no more than `N` jobs are simultaneously active.
17
+
5.**Monitor and Collect Results**:
18
+
- The status of each submitted job is tracked until it completes (either successfully or in a failed state).
19
+
- Upon completion, **rsync** is used to retrieve the results files locally. If the retrieval fails, the job’s state is marked as `UnknownState` for manual review.
20
+
6.**Store Results**: Once all filtered nodes have completed their benchmark jobs, the benchmarking process concludes, and all result files are stored in the `/results.d` directory.
21
+
22
+
This automated workflow ensures efficient and scalable benchmarking tailored to the dynamic nature of the Grid5000 environment.
23
+
24
+
25
+
## Why it exists.
26
+
27
+
This benchmarks aim at measuring the variability introduced by the PowerAPI framework over the RAPL interface.
28
+
29
+
## Who it’s for.
30
+
Currently, this work remains internal for PowerAPI staff to study the variability of the PowerAPI framework along its development.
31
+
32
+
33
+
## Installation
34
+
35
+
To use this repository, you need to clone it locally, ensure you have Cargo installed, and then compile and run the project. Follow the steps below:
36
+
37
+
### Prerequisites
38
+
39
+
Before proceeding, make sure your system meets the following requirements:
40
+
41
+
-**Rust and Cargo**: Install Rust (which includes Cargo, Rust’s package manager and build system). If Rust is not installed, follow the instructions below:
42
+
1. Download and install Rust by running:
43
+
```bash
44
+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
45
+
```
46
+
2. Follow the on-screen instructions to complete the installation.
47
+
3. Add Cargo to your PATH (usually done by Rust installer automatically). Restart your terminal if necessary.
48
+
49
+
- **Dependencies**:
50
+
- A working installation of **OAR** on your Grid5000 node (or appropriate access).
51
+
- SSH access configured to interact with the Grid5000 nodes (for example, `ssh rennes` ran locally shall connect you to the rennes' frontend).
0 commit comments