From a05510c4fb5e16d9610de97ffec390c4ef57725d Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sat, 6 Sep 2025 16:52:17 +0200 Subject: [PATCH 01/31] Revise README for GreenLab Lab1 2025 --- README.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e48803d..a4ad983 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,17 @@ -# green-lab -Online material for the Green Lab at VU Amsterdam +# GreenLab-Lab1-2025 +INTRODUCTION + +## Exercises +** Ex 0 - Setup ** +In this exercise, you will set up your development environment by installing the Experiment Runner framework and the EnergiBridge tool. Verify installations and run basic tests to ensure everything is working correctly. + +** Ex 1 - Simple Example of Experiment Runner ** +Hello World Example + +** Ex 2 - EnergieBridge Demo ** +This exercise introduces the basic functionalities and provides an overview of the EnergieBridge. + +** Ex 3 - Example of Experiment Runner & EnergieBridge ** +This exercise integrates the ExperimentRunner with the EnergieBridge, so you can use them together, running experiments and collect data. + +(TODO) From f77f60aa216943a839f72b95f3f3590dd518d601 Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sat, 6 Sep 2025 16:52:51 +0200 Subject: [PATCH 02/31] Fix formatting of exercise headings in README --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a4ad983..58a6291 100644 --- a/README.md +++ b/README.md @@ -2,16 +2,16 @@ INTRODUCTION ## Exercises -** Ex 0 - Setup ** +**Ex 0 - Setup** In this exercise, you will set up your development environment by installing the Experiment Runner framework and the EnergiBridge tool. Verify installations and run basic tests to ensure everything is working correctly. -** Ex 1 - Simple Example of Experiment Runner ** +**Ex 1 - Simple Example of Experiment Runner** Hello World Example -** Ex 2 - EnergieBridge Demo ** +**Ex 2 - EnergieBridge Demo** This exercise introduces the basic functionalities and provides an overview of the EnergieBridge. -** Ex 3 - Example of Experiment Runner & EnergieBridge ** +**Ex 3 - Example of Experiment Runner & EnergieBridge** This exercise integrates the ExperimentRunner with the EnergieBridge, so you can use them together, running experiments and collect data. (TODO) From d083ad444a45896990e4641243f37dc2a2fab30c Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sat, 6 Sep 2025 17:00:35 +0200 Subject: [PATCH 03/31] Add README with setup and troubleshooting instructions --- ex_0/README.md | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 ex_0/README.md diff --git a/ex_0/README.md b/ex_0/README.md new file mode 100644 index 0000000..3f6ec68 --- /dev/null +++ b/ex_0/README.md @@ -0,0 +1,56 @@ +EX 1 - Setup and Run Example +## Setting Up Your Environment + +### [Experiment Runner](https://github.com/S2-group/experiment-runner/tree/master) +Experiment Runner is a generic framework to automatically execute measurement-based experiments on any platform. The experiments are user-defined, can be completely customized, and expressed in python code! + +**Step 1:** Fork [the repo](https://github.com/S2-group/experiment-runner/tree/master) and **clone the fork** to your computer. + +**Step 2:** Follow the installation instructions [here](https://github.com/S2-group/experiment-runner/tree/master) + +**Note**: *It is good practice to use separate virtual envrionments for different (Python) projects. Do this is you find any errors setting up / running **Experiment Runner**. If you have never worked with virtual environments in Python check [venv](https://docs.python.org/3/library/venv.html) or [miniconda](https://docs.anaconda.com/miniconda/).* + +**Step 3:** Check if the example program ran correctly (i.e., no errors), run hello world example: +``` +python experiment-runner/ examples/hello-world/RunnerConfig.py +``` + +### [EnergiBridge](https://github.com/tdurieux/EnergiBridge) +Energibridge is a cross-platform energy measurement utility that provides support for Linux, Windows, and MacOS, as well as Intel, AMD, and Apple ARM CPU architectures. + +**Step 1:** Follow the installation instructions for your platform from the [EnergiBrigde repo](https://github.com/tdurieux/EnergiBridge?tab=readme-ov-file#install). + +**Step 2:** Check if EnergiBridge is installed using `energibridge -h` + +**Step 3:** Track energy consumption of your first program +``` +energibridge --summary -o test.csv sleep 5 +``` + +## Troubleshooting + +- `cargo` error: +```bash +$ cargo build -r +cargo: command not found +``` +You problably don't have Rust installed, follow the installation instructions [here](https://www.rust-lang.org/tools/install). + +- `energibridge` not found: +```bash +$ energibridge -h +energibridge: command not found +``` +`energibridge` is not in your `$PATH`. Navigate to the `EnergiBridge` installation directory and you will find the binary under `target/release`. Add this directory to your path or, alternatively, copy the binary to a directory that is already in your path. + +- `energibridge` permission error: +```bash +$ energibridge sleep 3 +thread 'main' panicked at src/cpu/intel.rs:34:85: +called `Result::unwrap()` on an `Err` value: Os { code: 13, kind: PermissionDenied, message: "Permission denied" } +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace +``` +`energibridge` is trying to access protected files for which it doesn't have permission. Even though you followed [the setup](https://github.com/tdurieux/EnergiBridge) step by step this can happen dependig on your distro. Fast fix is running it as `sudo`. + +**Note**: *When you run `energibridge` as `sudo` your user `$PATH` is not loaded, so either you specify the whole path (e.g. `/path/to/energibridge/target/release/energibridge`) or you copy the binary to a system-wide available path (e.g. `/usr/bin`).* + From 5c12245722635dee6dbd29610db39b6457d30156 Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sat, 6 Sep 2025 17:00:47 +0200 Subject: [PATCH 04/31] Change header format in README.md --- ex_0/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ex_0/README.md b/ex_0/README.md index 3f6ec68..2a9a71d 100644 --- a/ex_0/README.md +++ b/ex_0/README.md @@ -1,4 +1,4 @@ -EX 1 - Setup and Run Example +#EX 1 - Setup and Run Example ## Setting Up Your Environment ### [Experiment Runner](https://github.com/S2-group/experiment-runner/tree/master) From d48c0ad24cfe1bc70e3fd4da6de383c919bab85e Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sat, 6 Sep 2025 17:00:56 +0200 Subject: [PATCH 05/31] Fix header formatting in README.md --- ex_0/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ex_0/README.md b/ex_0/README.md index 2a9a71d..570ffaa 100644 --- a/ex_0/README.md +++ b/ex_0/README.md @@ -1,4 +1,4 @@ -#EX 1 - Setup and Run Example +# EX 1 - Setup and Run Example ## Setting Up Your Environment ### [Experiment Runner](https://github.com/S2-group/experiment-runner/tree/master) From 130c1e90752181914c18f50534a18f2d914c91a8 Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sat, 6 Sep 2025 17:02:32 +0200 Subject: [PATCH 06/31] Revise README section titles for consistency --- ex_0/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ex_0/README.md b/ex_0/README.md index 570ffaa..4efccb1 100644 --- a/ex_0/README.md +++ b/ex_0/README.md @@ -1,21 +1,21 @@ -# EX 1 - Setup and Run Example +# EX 1 - Setup and Run Examples ## Setting Up Your Environment -### [Experiment Runner](https://github.com/S2-group/experiment-runner/tree/master) +### 1. [Experiment Runner](https://github.com/S2-group/experiment-runner/tree/master) Experiment Runner is a generic framework to automatically execute measurement-based experiments on any platform. The experiments are user-defined, can be completely customized, and expressed in python code! **Step 1:** Fork [the repo](https://github.com/S2-group/experiment-runner/tree/master) and **clone the fork** to your computer. **Step 2:** Follow the installation instructions [here](https://github.com/S2-group/experiment-runner/tree/master) -**Note**: *It is good practice to use separate virtual envrionments for different (Python) projects. Do this is you find any errors setting up / running **Experiment Runner**. If you have never worked with virtual environments in Python check [venv](https://docs.python.org/3/library/venv.html) or [miniconda](https://docs.anaconda.com/miniconda/).* +**Note**: *It is good practice to use separate virtual envrionments for different (Python) projects. Do this is you find any errors setting up / running **Experiment Runner**. If you have never worked with virtual environments in Python, check [venv](https://docs.python.org/3/library/venv.html) or [miniconda](https://docs.anaconda.com/miniconda/).* **Step 3:** Check if the example program ran correctly (i.e., no errors), run hello world example: ``` python experiment-runner/ examples/hello-world/RunnerConfig.py ``` -### [EnergiBridge](https://github.com/tdurieux/EnergiBridge) +### 2. [EnergiBridge](https://github.com/tdurieux/EnergiBridge) Energibridge is a cross-platform energy measurement utility that provides support for Linux, Windows, and MacOS, as well as Intel, AMD, and Apple ARM CPU architectures. **Step 1:** Follow the installation instructions for your platform from the [EnergiBrigde repo](https://github.com/tdurieux/EnergiBridge?tab=readme-ov-file#install). From 09f31f1afb1c4521bec05bb386bf5e9dc1e02c7a Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sat, 6 Sep 2025 17:03:07 +0200 Subject: [PATCH 07/31] Delete ex_0 directory --- ex_0/README.md | 56 -------------------------------------------------- 1 file changed, 56 deletions(-) delete mode 100644 ex_0/README.md diff --git a/ex_0/README.md b/ex_0/README.md deleted file mode 100644 index 4efccb1..0000000 --- a/ex_0/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# EX 1 - Setup and Run Examples -## Setting Up Your Environment - -### 1. [Experiment Runner](https://github.com/S2-group/experiment-runner/tree/master) -Experiment Runner is a generic framework to automatically execute measurement-based experiments on any platform. The experiments are user-defined, can be completely customized, and expressed in python code! - -**Step 1:** Fork [the repo](https://github.com/S2-group/experiment-runner/tree/master) and **clone the fork** to your computer. - -**Step 2:** Follow the installation instructions [here](https://github.com/S2-group/experiment-runner/tree/master) - -**Note**: *It is good practice to use separate virtual envrionments for different (Python) projects. Do this is you find any errors setting up / running **Experiment Runner**. If you have never worked with virtual environments in Python, check [venv](https://docs.python.org/3/library/venv.html) or [miniconda](https://docs.anaconda.com/miniconda/).* - -**Step 3:** Check if the example program ran correctly (i.e., no errors), run hello world example: -``` -python experiment-runner/ examples/hello-world/RunnerConfig.py -``` - -### 2. [EnergiBridge](https://github.com/tdurieux/EnergiBridge) -Energibridge is a cross-platform energy measurement utility that provides support for Linux, Windows, and MacOS, as well as Intel, AMD, and Apple ARM CPU architectures. - -**Step 1:** Follow the installation instructions for your platform from the [EnergiBrigde repo](https://github.com/tdurieux/EnergiBridge?tab=readme-ov-file#install). - -**Step 2:** Check if EnergiBridge is installed using `energibridge -h` - -**Step 3:** Track energy consumption of your first program -``` -energibridge --summary -o test.csv sleep 5 -``` - -## Troubleshooting - -- `cargo` error: -```bash -$ cargo build -r -cargo: command not found -``` -You problably don't have Rust installed, follow the installation instructions [here](https://www.rust-lang.org/tools/install). - -- `energibridge` not found: -```bash -$ energibridge -h -energibridge: command not found -``` -`energibridge` is not in your `$PATH`. Navigate to the `EnergiBridge` installation directory and you will find the binary under `target/release`. Add this directory to your path or, alternatively, copy the binary to a directory that is already in your path. - -- `energibridge` permission error: -```bash -$ energibridge sleep 3 -thread 'main' panicked at src/cpu/intel.rs:34:85: -called `Result::unwrap()` on an `Err` value: Os { code: 13, kind: PermissionDenied, message: "Permission denied" } -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace -``` -`energibridge` is trying to access protected files for which it doesn't have permission. Even though you followed [the setup](https://github.com/tdurieux/EnergiBridge) step by step this can happen dependig on your distro. Fast fix is running it as `sudo`. - -**Note**: *When you run `energibridge` as `sudo` your user `$PATH` is not loaded, so either you specify the whole path (e.g. `/path/to/energibridge/target/release/energibridge`) or you copy the binary to a system-wide available path (e.g. `/usr/bin`).* - From e44a58f23c825e2bde32df07a0890cd4db8bdbd4 Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sat, 6 Sep 2025 17:03:37 +0200 Subject: [PATCH 08/31] Create README.md with setup and troubleshooting guide --- ex1/README.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 ex1/README.md diff --git a/ex1/README.md b/ex1/README.md new file mode 100644 index 0000000..4efccb1 --- /dev/null +++ b/ex1/README.md @@ -0,0 +1,56 @@ +# EX 1 - Setup and Run Examples +## Setting Up Your Environment + +### 1. [Experiment Runner](https://github.com/S2-group/experiment-runner/tree/master) +Experiment Runner is a generic framework to automatically execute measurement-based experiments on any platform. The experiments are user-defined, can be completely customized, and expressed in python code! + +**Step 1:** Fork [the repo](https://github.com/S2-group/experiment-runner/tree/master) and **clone the fork** to your computer. + +**Step 2:** Follow the installation instructions [here](https://github.com/S2-group/experiment-runner/tree/master) + +**Note**: *It is good practice to use separate virtual envrionments for different (Python) projects. Do this is you find any errors setting up / running **Experiment Runner**. If you have never worked with virtual environments in Python, check [venv](https://docs.python.org/3/library/venv.html) or [miniconda](https://docs.anaconda.com/miniconda/).* + +**Step 3:** Check if the example program ran correctly (i.e., no errors), run hello world example: +``` +python experiment-runner/ examples/hello-world/RunnerConfig.py +``` + +### 2. [EnergiBridge](https://github.com/tdurieux/EnergiBridge) +Energibridge is a cross-platform energy measurement utility that provides support for Linux, Windows, and MacOS, as well as Intel, AMD, and Apple ARM CPU architectures. + +**Step 1:** Follow the installation instructions for your platform from the [EnergiBrigde repo](https://github.com/tdurieux/EnergiBridge?tab=readme-ov-file#install). + +**Step 2:** Check if EnergiBridge is installed using `energibridge -h` + +**Step 3:** Track energy consumption of your first program +``` +energibridge --summary -o test.csv sleep 5 +``` + +## Troubleshooting + +- `cargo` error: +```bash +$ cargo build -r +cargo: command not found +``` +You problably don't have Rust installed, follow the installation instructions [here](https://www.rust-lang.org/tools/install). + +- `energibridge` not found: +```bash +$ energibridge -h +energibridge: command not found +``` +`energibridge` is not in your `$PATH`. Navigate to the `EnergiBridge` installation directory and you will find the binary under `target/release`. Add this directory to your path or, alternatively, copy the binary to a directory that is already in your path. + +- `energibridge` permission error: +```bash +$ energibridge sleep 3 +thread 'main' panicked at src/cpu/intel.rs:34:85: +called `Result::unwrap()` on an `Err` value: Os { code: 13, kind: PermissionDenied, message: "Permission denied" } +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace +``` +`energibridge` is trying to access protected files for which it doesn't have permission. Even though you followed [the setup](https://github.com/tdurieux/EnergiBridge) step by step this can happen dependig on your distro. Fast fix is running it as `sudo`. + +**Note**: *When you run `energibridge` as `sudo` your user `$PATH` is not loaded, so either you specify the whole path (e.g. `/path/to/energibridge/target/release/energibridge`) or you copy the binary to a system-wide available path (e.g. `/usr/bin`).* + From 0494f10154d8596a11b1e26e4ff3b047dbed6ec5 Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sat, 6 Sep 2025 17:05:43 +0200 Subject: [PATCH 09/31] Update README with clearer example program instructions --- ex1/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ex1/README.md b/ex1/README.md index 4efccb1..2f23cd6 100644 --- a/ex1/README.md +++ b/ex1/README.md @@ -10,11 +10,13 @@ Experiment Runner is a generic framework to automatically execute measurement-ba **Note**: *It is good practice to use separate virtual envrionments for different (Python) projects. Do this is you find any errors setting up / running **Experiment Runner**. If you have never worked with virtual environments in Python, check [venv](https://docs.python.org/3/library/venv.html) or [miniconda](https://docs.anaconda.com/miniconda/).* -**Step 3:** Check if the example program ran correctly (i.e., no errors), run hello world example: +**Step 3:** Check if the example program ran correctly (i.e., no errors), this example serves as an equivalent of a "Hello World" program, run: ``` python experiment-runner/ examples/hello-world/RunnerConfig.py ``` +The results are generated in the `examples/hello-world/experiments` folder. + ### 2. [EnergiBridge](https://github.com/tdurieux/EnergiBridge) Energibridge is a cross-platform energy measurement utility that provides support for Linux, Windows, and MacOS, as well as Intel, AMD, and Apple ARM CPU architectures. From addc67c2c4a36c2c5438a05428954839d12af760 Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sat, 6 Sep 2025 19:44:01 +0200 Subject: [PATCH 10/31] Update README with Python version activation note --- ex1/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ex1/README.md b/ex1/README.md index 2f23cd6..f14a932 100644 --- a/ex1/README.md +++ b/ex1/README.md @@ -6,7 +6,7 @@ Experiment Runner is a generic framework to automatically execute measurement-ba **Step 1:** Fork [the repo](https://github.com/S2-group/experiment-runner/tree/master) and **clone the fork** to your computer. -**Step 2:** Follow the installation instructions [here](https://github.com/S2-group/experiment-runner/tree/master) +**Step 2:** Follow the installation instructions [here](https://github.com/S2-group/experiment-runner/tree/master), if you have multiple python versions, please activate the version >=3.8 in advance. **Note**: *It is good practice to use separate virtual envrionments for different (Python) projects. Do this is you find any errors setting up / running **Experiment Runner**. If you have never worked with virtual environments in Python, check [venv](https://docs.python.org/3/library/venv.html) or [miniconda](https://docs.anaconda.com/miniconda/).* From 739517609ed62c373a9791f61f48a92a8474426e Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sat, 6 Sep 2025 20:14:06 +0200 Subject: [PATCH 11/31] Clarify installation and usage steps in README --- ex1/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ex1/README.md b/ex1/README.md index f14a932..16c2a28 100644 --- a/ex1/README.md +++ b/ex1/README.md @@ -4,18 +4,18 @@ ### 1. [Experiment Runner](https://github.com/S2-group/experiment-runner/tree/master) Experiment Runner is a generic framework to automatically execute measurement-based experiments on any platform. The experiments are user-defined, can be completely customized, and expressed in python code! -**Step 1:** Fork [the repo](https://github.com/S2-group/experiment-runner/tree/master) and **clone the fork** to your computer. +**Step 1- Fork and clone**: fork [the repo](https://github.com/S2-group/experiment-runner/tree/master) and **clone the fork** to your computer. -**Step 2:** Follow the installation instructions [here](https://github.com/S2-group/experiment-runner/tree/master), if you have multiple python versions, please activate the version >=3.8 in advance. +**Step 2- Install**: if you have multiple python versions, please activate the version >=3.8 in advance. Follow the installation instructions [here](https://github.com/S2-group/experiment-runner/tree/master), **Note**: *It is good practice to use separate virtual envrionments for different (Python) projects. Do this is you find any errors setting up / running **Experiment Runner**. If you have never worked with virtual environments in Python, check [venv](https://docs.python.org/3/library/venv.html) or [miniconda](https://docs.anaconda.com/miniconda/).* -**Step 3:** Check if the example program ran correctly (i.e., no errors), this example serves as an equivalent of a "Hello World" program, run: +**Step 3-Run example**: check if the example program ran correctly (i.e., no errors), this example serves as an equivalent of a "Hello World" program, run: ``` python experiment-runner/ examples/hello-world/RunnerConfig.py ``` -The results are generated in the `examples/hello-world/experiments` folder. +The results are generated in the `examples/hello-world/experiments` folder. It should be named as `new_runner_experiment` by default. ### 2. [EnergiBridge](https://github.com/tdurieux/EnergiBridge) Energibridge is a cross-platform energy measurement utility that provides support for Linux, Windows, and MacOS, as well as Intel, AMD, and Apple ARM CPU architectures. From d18b5949cff88b0bb84bd6aa89ba9f0dda1f66bd Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sat, 6 Sep 2025 22:09:21 +0200 Subject: [PATCH 12/31] Revise exercise sections in README.md --- README.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 58a6291..c17e80a 100644 --- a/README.md +++ b/README.md @@ -2,16 +2,13 @@ INTRODUCTION ## Exercises -**Ex 0 - Setup** +**Ex 1 - Setup of Experiment Runner & EnergiBridge** In this exercise, you will set up your development environment by installing the Experiment Runner framework and the EnergiBridge tool. Verify installations and run basic tests to ensure everything is working correctly. -**Ex 1 - Simple Example of Experiment Runner** -Hello World Example - **Ex 2 - EnergieBridge Demo** This exercise introduces the basic functionalities and provides an overview of the EnergieBridge. -**Ex 3 - Example of Experiment Runner & EnergieBridge** +**Ex 3 - Know about RuntableModel** This exercise integrates the ExperimentRunner with the EnergieBridge, so you can use them together, running experiments and collect data. -(TODO) +**Add Hook Description** From 18bb15590de97af0a47e593fd4c862046524e2a1 Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sun, 7 Sep 2025 11:40:58 +0200 Subject: [PATCH 13/31] Revise README for EnergiBridge experiment instructions --- ex2/README.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 ex2/README.md diff --git a/ex2/README.md b/ex2/README.md new file mode 100644 index 0000000..4fde803 --- /dev/null +++ b/ex2/README.md @@ -0,0 +1,27 @@ +# Getting to know [EnergiBridge](https://github.com/tdurieux/EnergiBridge) + +## Exercise +For now we're going to stick with a simple experiment with one single factor and one single level. Later on +we will see how to run more interesting experiments. The focus of this exercise is to teach you understand how `EnergiBridge` act as a profiler within the `experiment-runner` framework. For this, we just want a single run of +the following command: +``` +energibridge --summary -o test.csv sleep 5 +``` + +We will measure the total CPU enery and the total memory used of 5 seconds. Example Output in terminal: +``` +Energy consumption in joules: 253.86045820617682 for 5.1230927 sec of execution. +``` +Open the generated `test.csv` file to check details of raw EnergiBridge file. Output Format of `test.csv`: +``` +Delta,Time,CPU_FREQUENCY_0,CPU_FREQUENCY_1,CPU_FREQUENCY_2,CPU_FREQUENCY_3,CPU_FREQUENCY_4,CPU_FREQUENCY_5,CPU_FREQUENCY_6,CPU_FREQUENCY_7,CPU_FREQUENCY_8,CPU_FREQUENCY_9,CPU_TEMP_0,CPU_TEMP_1,CPU_TEMP_2,CPU_TEMP_3,CPU_TEMP_4,CPU_TEMP_5,CPU_TEMP_6,CPU_TEMP_7,CPU_TEMP_8,CPU_TEMP_9,CPU_USAGE_0,CPU_USAGE_1,CPU_USAGE_2,CPU_USAGE_3,CPU_USAGE_4,CPU_USAGE_5,CPU_USAGE_6,CPU_USAGE_7,CPU_USAGE_8,CPU_USAGE_9,SYSTEM_POWER (Watts),TOTAL_MEMORY,TOTAL_SWAP,USED_MEMORY,USED_SWAP +0,1697704464320,0,0,0,0,0,0,0,0,0,0,46.529457092285156,44.31881332397461,43.83422088623047,47.03656005859375,44.67115783691406,43.856910705566406,41.333412170410156,41.268951416015625,44.348262786865234,43.08387756347656,46.37215805053711,45.429779052734375,15.021618843078613,8.819367408752441,5.0954484939575195,3.514699935913086,2.9715969562530518,1.5818228721618652,1.1069598197937012,0.9475208520889282,11.58033275604248,34359738368,0,10188488704,0 +104,1697704464321,0,0,0,0,0,0,0,0,0,0,46.529457092285156,44.31881332397461,43.83422088623047,47.03656005859375,44.67115783691406,43.856910705566406,41.333412170410156,41.268951416015625,44.348262786865234,43.08387756347656,46.37215042114258,45.429771423339844,15.021615982055664,8.819366455078125,5.095447063446045,3.514699697494507,2.9715967178344727,1.5818227529525757,1.1069598197937012,0.9475207924842834,11.58033275604248,34359738368,0,10189275136,0 +``` + +Energy consumption calculated by EnergiBridge is **system dependent**, and output can change accordingly. Some details can refer to [this](https://github.com/tdurieux/EnergiBridge/blob/main/chart.ipynb). + + + + + From e13226bafc736caec423a5fac7001154cb8f4238 Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sun, 7 Sep 2025 11:41:56 +0200 Subject: [PATCH 14/31] Update README.md --- ex2/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ex2/README.md b/ex2/README.md index 4fde803..189c1e9 100644 --- a/ex2/README.md +++ b/ex2/README.md @@ -1,4 +1,4 @@ -# Getting to know [EnergiBridge](https://github.com/tdurieux/EnergiBridge) +# EX 2- Getting to know [EnergiBridge](https://github.com/tdurieux/EnergiBridge) ## Exercise For now we're going to stick with a simple experiment with one single factor and one single level. Later on From 9bb5f018efd6468c1a3b777b947368ac55734c39 Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sun, 7 Sep 2025 11:43:22 +0200 Subject: [PATCH 15/31] Update README to remove energy tracking step --- ex1/README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ex1/README.md b/ex1/README.md index 16c2a28..59069df 100644 --- a/ex1/README.md +++ b/ex1/README.md @@ -24,10 +24,6 @@ Energibridge is a cross-platform energy measurement utility that provides suppor **Step 2:** Check if EnergiBridge is installed using `energibridge -h` -**Step 3:** Track energy consumption of your first program -``` -energibridge --summary -o test.csv sleep 5 -``` ## Troubleshooting From f89c200c34587799ccfcefe1e038b46d644134da Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sun, 7 Sep 2025 12:21:02 +0200 Subject: [PATCH 16/31] Add README for RunTableModel and RunnerConfig.py --- ex3/README.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 ex3/README.md diff --git a/ex3/README.md b/ex3/README.md new file mode 100644 index 0000000..8554db4 --- /dev/null +++ b/ex3/README.md @@ -0,0 +1,42 @@ +# EX 3 - Understand the RunTableModel and `RunnerConfig.py` +## Overview + +**The RunTableModel** defines an experiment's measurements with *Factors*, their *Treatment* levels, *exclude certain combinations* of Treatments, number of *repetitions* and add *data columns* for storing aggregated data. + +**RunnerConfig.py** is the entrance that passes user-defined configuration to Experiment Runner Controller. Experiment Runner will: +- Validate the config +- Output the config's values as read by Experiment Runner in the console for user validation +- Create the experiment folder +- Create the run table (.csv), and persist it in the experiment folder +- Execute the experiment on a per-variation basis, going over each variation with its specified treatments in the run table. + +## Example +Part code of `experiment-runner/examples/hello-world-fibonacci +/RunnerConfig.py`: + +```python +def create_run_table_model(self) -> RunTableModel: + """Create and return the run_table model here. A run_table is a List (rows) of tuples (columns), + representing each run performed""" + factor1 = FactorModel("fib_type", ['iter', 'mem', 'rec']) + factor2 = FactorModel("problem_size", [10, 35, 40, 5000, 10000]) + self.run_table_model = RunTableModel( + factors=[factor1, factor2], + exclude_combinations=[ + {factor2: [10]}, # all runs having treatment "10" will be excluded + {factor1: ['rec'], factor2: [5000, 10000]}, + {factor1: ['mem', 'iter'], factor2: [35, 40]}, # all runs having the combination ("iter", 30) will be excluded + ], + repetitions = 10, + data_columns=["energy", "runtime", "memory"] + ) + return self.run_table_model + +``` +It is expected to repeat 10 times, generate 60 experiment results in total, and produce `run_table.csv` in the following format (this example was produced on Mac, energy in Watts): + +|__run_id | __done | fib_type | problem_size | energy | runtime | memory| +| ------------- | ------------- |-------------| ------------- | ------------- |-------------|-------------| +|run_0_repetition_0 | DONE | rec | 40 | 61.3 | 21.9402 | 10778673152| + +Check `experiment-runner/examples/hello-world-fibonacci/experiments/new_runner_experiment/` and explore more details. From ced6a88b6e31f3296b49ff2964d237302583d2e4 Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sun, 7 Sep 2025 12:45:52 +0200 Subject: [PATCH 17/31] Enhance README with examples and hooks information --- ex3/README.md | 65 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 62 insertions(+), 3 deletions(-) diff --git a/ex3/README.md b/ex3/README.md index 8554db4..2a74797 100644 --- a/ex3/README.md +++ b/ex3/README.md @@ -10,9 +10,10 @@ - Create the run table (.csv), and persist it in the experiment folder - Execute the experiment on a per-variation basis, going over each variation with its specified treatments in the run table. -## Example -Part code of `experiment-runner/examples/hello-world-fibonacci -/RunnerConfig.py`: + +Then following examples use part code of `experiment-runner/examples/hello-world-fibonacci +/RunnerConfig.py`. +## Example 1 ```python def create_run_table_model(self) -> RunTableModel: @@ -40,3 +41,61 @@ It is expected to repeat 10 times, generate 60 experiment results in total, and |run_0_repetition_0 | DONE | rec | 40 | 61.3 | 21.9402 | 10778673152| Check `experiment-runner/examples/hello-world-fibonacci/experiments/new_runner_experiment/` and explore more details. + + +## Example 2 + +```python +def start_measurement(self, context: RunnerContext) -> None: + """Perform any activity required for starting measurements.""" + fib_type = context.execute_run["fib_type"] + problem_size = context.execute_run["problem_size"] + + self.profiler = EnergiBridge(target_program=f"python examples/hello-world-fibonacci/fibonacci_{fib_type}.py {problem_size}", + out_file=context.run_dir / "energibridge.csv") + + self.profiler.start() +``` + +```python + +def populate_run_data(self, context: RunnerContext) -> Optional[Dict[str, Any]]: + """Parse and process any measurement data here. + You can also store the raw measurement data under `context.run_dir` + Returns a dictionary with keys `self.run_table_model.data_columns` and their values populated""" + + eb_log, eb_summary = self.profiler.parse_log(self.profiler.logfile, + self.profiler.summary_logfile) + + return {"energy": list(eb_log["PACKAGE_ENERGY (J)"].values())[-1] - list(eb_log["PACKAGE_ENERGY (J)"].values())[0], # Linux Output + "runtime": eb_summary["runtime_seconds"], + "memory": max(eb_log["USED_MEMORY"].values())} +``` + +`run_table.csv` shows the final results, generated by combining all `energibridge.csv` files from 10 repetitions. The computation follows the method in `populate_run_date()`. You can check the code for more details. + +## Exploration +Play around with more parameters and see what happens. + +### Using Hooks in Experiment-Runner +Hooks in `experiment-runner` are specific methods within the `RunnerConfig` class. They allow you to execute actions at various points during the lifecycle of an experiment. These hooks can be used to prepare data, initiate measurements, handle results, etc. + +### Hooks Descriptions + - `before_experiment()`: called once before the entire experiment starts. It is generally used to perform any initial setup required for the experiment + - `before_run()`: invoked before each individual run within an experiment + - `start_run()`: called at the very start of each run + - `start_measurement()`: triggered when the measurement phase of each run starts + - `interact()`: used to interact with the running target system + - `stop_measurement()`: called to stop any ongoing measurements + - `stop_run()` : called after a run completes + - `populate_run_data()`: used to process and populate the run data once a run is completed + - `after_experiment()`: called once after the entire experiment ends. It can be used to perform any cleanup or finalization required at the end of all runs + +## Troubleshooting +- `FileExistsError` error +``` +FileExistsError: [Errno 17] File exists.. +``` +This may be because a directory with the default name `new_runner_experiment` already exists. You can either delete it if it’s no longer needed, or change the parameter at `RunnerConfig.py`. + + From 63c69fde2891156c28a9eb0d9cdff687ca3cafcd Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sun, 7 Sep 2025 15:55:49 +0200 Subject: [PATCH 18/31] Fix typos in README.md --- ex2/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ex2/README.md b/ex2/README.md index 189c1e9..e3206ed 100644 --- a/ex2/README.md +++ b/ex2/README.md @@ -8,7 +8,7 @@ the following command: energibridge --summary -o test.csv sleep 5 ``` -We will measure the total CPU enery and the total memory used of 5 seconds. Example Output in terminal: +We will measure the total CPU energy and the total memory used of 5 seconds. Example Output in terminal: ``` Energy consumption in joules: 253.86045820617682 for 5.1230927 sec of execution. ``` From 4914cbe59ccb16e6eb26784cfa8ff04af8df1261 Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Sun, 7 Sep 2025 21:14:03 +0200 Subject: [PATCH 19/31] Fix typo in README about virtual environments --- ex1/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ex1/README.md b/ex1/README.md index 59069df..1ece19b 100644 --- a/ex1/README.md +++ b/ex1/README.md @@ -8,7 +8,7 @@ Experiment Runner is a generic framework to automatically execute measurement-ba **Step 2- Install**: if you have multiple python versions, please activate the version >=3.8 in advance. Follow the installation instructions [here](https://github.com/S2-group/experiment-runner/tree/master), -**Note**: *It is good practice to use separate virtual envrionments for different (Python) projects. Do this is you find any errors setting up / running **Experiment Runner**. If you have never worked with virtual environments in Python, check [venv](https://docs.python.org/3/library/venv.html) or [miniconda](https://docs.anaconda.com/miniconda/).* +**Note**: *It is good practice to use separate virtual environments for different (Python) projects. Do this is you find any errors setting up / running **Experiment Runner**. If you have never worked with virtual environments in Python, check [venv](https://docs.python.org/3/library/venv.html) or [miniconda](https://docs.anaconda.com/miniconda/).* **Step 3-Run example**: check if the example program ran correctly (i.e., no errors), this example serves as an equivalent of a "Hello World" program, run: ``` From 73d24467a4aea422a2ee8bcaa7bd34f2a6da2caa Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Tue, 9 Sep 2025 09:11:46 +0200 Subject: [PATCH 20/31] Revise introduction in README.md Updated introduction to provide a clearer overview of the repository's purpose and content. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c17e80a..1cd6652 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # GreenLab-Lab1-2025 -INTRODUCTION +This repository contains a set of exercises for the GreenLab Lab 1 of 2025. The exercises are designed to help students learn about ExperimentRunner and EnergieBridge using a series of hands-on tasks. ## Exercises **Ex 1 - Setup of Experiment Runner & EnergiBridge** From 55d3d7f79486c9d6e6c335a9265297b277182ba8 Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Thu, 11 Sep 2025 03:08:23 +0800 Subject: [PATCH 21/31] Remove 'Add Hook Description' section --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1cd6652..54c0d2a 100644 --- a/README.md +++ b/README.md @@ -11,4 +11,4 @@ This exercise introduces the basic functionalities and provides an overview of t **Ex 3 - Know about RuntableModel** This exercise integrates the ExperimentRunner with the EnergieBridge, so you can use them together, running experiments and collect data. -**Add Hook Description** + From 008b612e36cf7ae8417ac94d56237e65cf9b95bc Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Thu, 11 Sep 2025 03:17:28 +0800 Subject: [PATCH 22/31] Enhance README with EnergiBridge details Added a description of the EnergiBridge tool's functionality. --- ex1/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ex1/README.md b/ex1/README.md index 1ece19b..f06711b 100644 --- a/ex1/README.md +++ b/ex1/README.md @@ -18,7 +18,7 @@ python experiment-runner/ examples/hello-world/RunnerConfig.py The results are generated in the `examples/hello-world/experiments` folder. It should be named as `new_runner_experiment` by default. ### 2. [EnergiBridge](https://github.com/tdurieux/EnergiBridge) -Energibridge is a cross-platform energy measurement utility that provides support for Linux, Windows, and MacOS, as well as Intel, AMD, and Apple ARM CPU architectures. +Energibridge is a cross-platform energy measurement utility that provides support for Linux, Windows, and MacOS, as well as Intel, AMD, and Apple ARM CPU architectures. This tool is designed to collect resource usage data for a command to execute and to output the data in a CSV format. **Step 1:** Follow the installation instructions for your platform from the [EnergiBrigde repo](https://github.com/tdurieux/EnergiBridge?tab=readme-ov-file#install). From 68de512e403a545018b13037fdc655a0ae4f0575 Mon Sep 17 00:00:00 2001 From: Andrei Dragomir Date: Thu, 11 Sep 2025 15:27:43 +0200 Subject: [PATCH 23/31] Refactored and Proof checked version --- README.md => Lab 1/README.md | 9 +-- Lab 1/ex1/EnergiBridge.md | 79 ++++++++++++++++++++ Lab 1/ex2/ExperimentRunner.md | 135 ++++++++++++++++++++++++++++++++++ Lab 1/setup/Setup.md | 128 ++++++++++++++++++++++++++++++++ ex1/README.md | 54 -------------- ex2/README.md | 27 ------- ex3/README.md | 101 ------------------------- 7 files changed, 346 insertions(+), 187 deletions(-) rename README.md => Lab 1/README.md (58%) create mode 100644 Lab 1/ex1/EnergiBridge.md create mode 100644 Lab 1/ex2/ExperimentRunner.md create mode 100644 Lab 1/setup/Setup.md delete mode 100644 ex1/README.md delete mode 100644 ex2/README.md delete mode 100644 ex3/README.md diff --git a/README.md b/Lab 1/README.md similarity index 58% rename from README.md rename to Lab 1/README.md index 54c0d2a..b1fbb17 100644 --- a/README.md +++ b/Lab 1/README.md @@ -1,11 +1,10 @@ -# GreenLab-Lab1-2025 +# GreenLab 2025: Lab 1 This repository contains a set of exercises for the GreenLab Lab 1 of 2025. The exercises are designed to help students learn about ExperimentRunner and EnergieBridge using a series of hands-on tasks. -## Exercises -**Ex 1 - Setup of Experiment Runner & EnergiBridge** -In this exercise, you will set up your development environment by installing the Experiment Runner framework and the EnergiBridge tool. Verify installations and run basic tests to ensure everything is working correctly. +## Setup and Installation +Firstly, you will set up your development environment by installing the Experiment Runner framework and the EnergiBridge tool; verify installations and run basic tests to ensure everything is working correctly. -**Ex 2 - EnergieBridge Demo** +## Exercise 1 - EnergieBridge Demo** This exercise introduces the basic functionalities and provides an overview of the EnergieBridge. **Ex 3 - Know about RuntableModel** diff --git a/Lab 1/ex1/EnergiBridge.md b/Lab 1/ex1/EnergiBridge.md new file mode 100644 index 0000000..cf87889 --- /dev/null +++ b/Lab 1/ex1/EnergiBridge.md @@ -0,0 +1,79 @@ +# Getting familiar with [EnergiBridge](https://github.com/tdurieux/EnergiBridge) + +In this exercise, we will start with a simple experiment using **one factor** and **one level**. Later on, we will explore how to run more complex experiments. + +The goal here is to demonstrate how `EnergiBridge` can act as a **profiler** within the `experiment-runner` framework. For now, we just want to run a single command and observe the results. + +## Step 1: Run a Basic Command + +Execute the following command: + +```bash +energibridge --summary -o test.csv sleep 5 +``` + +This will: + +* Run the command `sleep 5` for 5 seconds +* Record resource usage data +* Save results in `test.csv` + +## Step 2: Observe Terminal Output + +You should see a message similar to: + +```bash +Energy consumption in joules: 253.86045820617682 for 5.1230927 sec of execution. +``` + +⚠️ Note: The energy consumption value is **system dependent** and will vary. + +## Step 3: Inspect the CSV Output + +Open the generated `test.csv` file to view detailed raw EnergiBridge data. Example header format: + +``` +Delta,Time,CPU_FREQUENCY_0,CPU_FREQUENCY_1,...,SYSTEM_POWER (Watts),TOTAL_MEMORY,TOTAL_SWAP,USED_MEMORY,USED_SWAP +``` + +Example first two rows: + +``` +0,1697704464320,0,0,0,0,0,0,0,0,0,0,46.529457092285156,44.31881332397461,43.83422088623047,47.03656005859375,44.67115783691406,43.856910705566406,41.333412170410156,41.268951416015625,44.348262786865234,43.08387756347656,46.37215805053711,45.429779052734375,15.021618843078613,8.819367408752441,5.0954484939575195,3.514699935913086,2.9715969562530518,1.5818228721618652,1.1069598197937012,0.9475208520889282,11.58033275604248,34359738368,0,10188488704,0 +104,1697704464321,0,0,0,0,0,0,0,0,0,0,46.529457092285156,44.31881332397461,43.83422088623047,47.03656005859375,44.67115783691406,43.856910705566406,41.333412170410156,41.268951416015625,44.348262786865234,43.08387756347656,46.37215042114258,45.429771423339844,15.021615982055664,8.819366455078125,5.095447063446045,3.514699697494507,2.9715967178344727,1.5818227529525757,1.1069598197937012,0.9475207924842834,11.58033275604248,34359738368,0,10189275136,0 +``` + +--- + +## 🔎 Optional Exploration + +You can run the following examples if you want to see the difference in consumption for tasks with different stress targets. + +* **CPU-bound workload**: + +```bash +energibridge --summary -o cpu_test.csv -m 5 sha1sum /dev/zero +``` + +* **Memory-bound workload**: + +```bash +energibridge --summary -o mem_test.csv -m 5 python -c "a = [0]*10**7" +``` + +* **Disk I/O workload**: + +```bash +energibridge --summary -o io_test.csv dd if=/dev/zero of=testfile bs=1M count=500 +``` + +### Discussion Points + +* Compare energy use across `sleep`, `cpu_test.csv`, `mem_test.csv`, and `io_test.csv`. +* Which workloads consume more CPU energy? Which stress memory or I/O? +* Do CPU frequency and temperature values rise under stress? + +### Visualization Task + +* Open the generated CSV files in Excel, Python (Pandas/Matplotlib), or use the official [chart.ipynb](https://github.com/tdurieux/EnergiBridge/blob/main/chart.ipynb). +* Plot CPU usage, memory usage, or power consumption over time. diff --git a/Lab 1/ex2/ExperimentRunner.md b/Lab 1/ex2/ExperimentRunner.md new file mode 100644 index 0000000..fa03543 --- /dev/null +++ b/Lab 1/ex2/ExperimentRunner.md @@ -0,0 +1,135 @@ +# Getting Familiar with [Experiment Runner](https://github.com/S2-group/experiment-runner/tree/master) + +## Overview + +In this exercise, you will learn how to configure and run experiments using **Experiment Runner**. The focus is on understanding: + +* The role of `RunnerConfig.py` +* The nine execution stages +* How to define an experiment using `RunTableModel` +* How measurement data is collected and aggregated + +By the end, you’ll be able to design your own small experiments and extend them with different factors, treatments, and measurement outputs. + +## RunnerConfig.py + +`RunnerConfig.py` defines how your experiment should be conducted, including the subjects (programs to run) and the output data to be collected. Based on this configuration, Experiment Runner will: + +* Create the experiment folder +* Generate the run table (`.csv`) inside the experiment folder +* Execute the experiment across all defined variations +* Follow **9 execution stages** during the lifecycle of each experiment + +## Execution Stages + +Execution stages are represented by methods inside the `RunnerConfig` class. They allow you to add setup, cleanup, or measurement actions before, during, and after runs. + +### The 9 Stages + +* **before\_experiment()**: Runs once before the entire experiment begins. Useful for cleanup, configuring CPU governors, or warming up the machine. + +For each run: + +* **before\_run()**: Invoked before a run starts. +* **start\_run()**: Marks the beginning of a run. +* **start\_measurement()**: Begins the measurement phase. +* **interact()**: Lets you interact with the target system during a run. +* **stop\_measurement()**: Stops measurements. +* **stop\_run()**: Called once a run finishes. +* **populate\_run\_data()**: Processes results and fills the data columns. + +Finally: + +* **after\_experiment()**: Runs once after all runs complete. Useful for cleanup and final reporting. + +⚠️ *Note: These stages are optional—you don’t need to implement them all for an experiment to run.* + + +## RunTableModel + +The `RunTableModel` specifies: + +* **Factors** and their **treatment levels** +* The number of **repetitions** +* Whether runs should be **shuffled** +* Any **excluded combinations** of treatments +* **Data columns** to store results + +The definition happens in the `create_run_table_model()` function. + +### Example 1: Defining the Run Table + +```python +def create_run_table_model(self) -> RunTableModel: + factor1 = FactorModel("fib_type", ['iter', 'mem', 'rec']) + factor2 = FactorModel("problem_size", [10, 35, 40, 5000, 10000]) + self.run_table_model = RunTableModel( + factors=[factor1, factor2], + exclude_combinations=[ + {factor2: [10]}, # exclude all runs with treatment "10" + {factor1: ['rec'], factor2: [5000, 10000]}, # exclude ('rec', 5000) and ('rec', 10000) + ], + shuffle=True, + repetitions=10, + data_columns=["energy", "runtime", "memory"] + ) + return self.run_table_model +``` + +This experiment repeats runs **10 times each**, producing **60 total results**. The results are stored in `run_table.csv`, for example: + +| \_\_run\_id | \_\_done | fib\_type | problem\_size | energy | runtime | memory | +| --------------------- | -------- | --------- | ------------- | ------ | ------- | ----------- | +| run\_0\_repetition\_0 | DONE | rec | 40 | 61.3 | 21.9402 | 10778673152 | + +--- + +### Example 2: Measurement Stages + +```python +def start_measurement(self, context: RunnerContext) -> None: + fib_type = context.execute_run["fib_type"] + problem_size = context.execute_run["problem_size"] + + self.profiler = EnergiBridge( + target_program=f"python examples/hello-world-fibonacci/fibonacci_{fib_type}.py {problem_size}", + out_file=context.run_dir / "energibridge.csv" + ) + + self.profiler.start() +``` + +```python +def populate_run_data(self, context: RunnerContext) -> Optional[Dict[str, Any]]: + eb_log, eb_summary = self.profiler.parse_log( + self.profiler.logfile, + self.profiler.summary_logfile + ) + + return { + "energy": list(eb_log["PACKAGE_ENERGY (J)"].values())[-1] - list(eb_log["PACKAGE_ENERGY (J)"].values())[0], + "runtime": eb_summary["runtime_seconds"], + "memory": max(eb_log["USED_MEMORY"].values()) + } +``` + +The final `run_table.csv` combines all repetitions and aggregates results from each `energibridge.csv`. The computation logic follows what’s defined in `populate_run_data()`. + +## Run it yourself + +* Change factor levels (e.g., add more Fibonacci sizes) and rerun. +* Increase or decrease repetitions to see how result stability changes. +* Add new data columns (e.g., `cpu_temp`) and extend `populate_run_data()`. +* Compare performance between Fibonacci implementations (`iter` vs `mem` vs `rec`). + +### Small experiments + +1. Predict which Fibonacci type (`iter`, `mem`, or `rec`) performs best at large problem sizes. Run the experiment and check if your prediction holds. +2. Try disabling shuffling—does the order of runs affect performance or stability? +3. Visualize your results (runtime vs. problem size) in a simple plot. + + +## Notes + +* Code snippets are taken from `examples/hello-world-fibonacci/RunnerConfig.py`. +* Explore additional examples in the [examples folder](https://github.com/S2-group/experiment-runner/tree/master/examples) for inspiration. diff --git a/Lab 1/setup/Setup.md b/Lab 1/setup/Setup.md new file mode 100644 index 0000000..e94d0cd --- /dev/null +++ b/Lab 1/setup/Setup.md @@ -0,0 +1,128 @@ +# Environment Setup Guide + +Follow these steps to prepare your environment for running experiments. + +## 1. Install [Experiment Runner](https://github.com/S2-group/experiment-runner/tree/master) + +Experiment Runner is a framework to automatically execute measurement-based experiments on any platform. Experiments are customizable and defined in Python. + +### Steps + +1. **Fork & Clone** + + * Fork the repository [here](https://github.com/S2-group/experiment-runner/tree/master). + * Clone your fork to your local machine. + +2. **Install** + + * Ensure you are using **Python ≥ 3.8**. + * Follow the installation instructions in the [README](https://github.com/S2-group/experiment-runner/tree/master). + * 💡 *Tip:* Use a virtual environment (`venv` or [Miniconda](https://docs.anaconda.com/miniconda/)) to avoid dependency issues. + * Run `python3 -m venv venv` in your project directory; + * Run `source ./venv/bin/activate` to activate the environment; + * Run `pip install -r ./experiment-runner/requirements.txt` + + * **Note**: Whenever you want to run experiment runner in this case, you must run it from the activated environment. + +3. **Run Example** + + * Test the setup by running the Hello World example: + + ```bash + python experiment-runner/examples/hello-world/RunnerConfig.py + ``` + * Results will be stored in: + + ``` + examples/hello-world/experiments/new_runner_experiment + ``` + * ✅ If it runs without errors, your installation is successful. + + +## 2. Install [EnergiBridge](https://github.com/tdurieux/EnergiBridge) + +EnergiBridge is a cross-platform tool to measure energy consumption and resource usage. It supports Linux, Windows, macOS, and multiple CPU architectures. + +### Steps + +1. **Install** + + * Follow the platform-specific installation instructions from the [EnergiBridge README](https://github.com/tdurieux/EnergiBridge?tab=readme-ov-file#install). + +2. **Verify Installation** + + * Run: + + ```bash + energibridge -h + ``` + * ✅ If the help message appears, EnergiBridge is installed correctly. + + +## 3. Troubleshooting + +### Rust / Cargo not found + +```bash +$ cargo build -r +cargo: command not found +``` + +➡️ Install Rust: [rust-lang.org/tools/install](https://www.rust-lang.org/tools/install). + +--- + +### Energibridge command not found (after installation) + +```bash +$ energibridge -h +energibridge: command not found +``` + +This happens because your OS does not know where to find energibridge (yet). To **fix this** you can use one of the following options: + + +#### Option 1: Add to PATH temporarily + +You can run the following command in a shell: +```bash +export PATH=$PATH:/target/release +``` + +Works **only for the current shell** session. + +#### Option 2: Add to PATH permanently +Append the line to your shell configuration file (e.g., `~/.bashrc`, `~/.zshrc`): + +```bash +echo 'export PATH=$PATH:~/EnergiBridge/target/release' >> ~/.bashrc +source ~/.bashrc +``` + +After this, energibridge will be available in all new terminal sessions. + +#### Option 3 (RECOMMENDED): Copy binary to a system-wide directory +```bash +sudo cp /target/release/energibridge /usr/local/bin/ +``` + +After this, you can run `energibridge` from anywhere without modifying configs. + +Run `energibridge -h` to check that it works. + +--- + +### Permission error + +```bash +$ energibridge sleep 3 +Permission denied +``` + +Run with `sudo`: + +```bash +sudo /path/to/energibridge sleep 3 +``` + +**Note:** When running with `sudo`, your user `$PATH` is not loaded. Use the **full path** or copy the binary to a system-wide directory. diff --git a/ex1/README.md b/ex1/README.md deleted file mode 100644 index f06711b..0000000 --- a/ex1/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# EX 1 - Setup and Run Examples -## Setting Up Your Environment - -### 1. [Experiment Runner](https://github.com/S2-group/experiment-runner/tree/master) -Experiment Runner is a generic framework to automatically execute measurement-based experiments on any platform. The experiments are user-defined, can be completely customized, and expressed in python code! - -**Step 1- Fork and clone**: fork [the repo](https://github.com/S2-group/experiment-runner/tree/master) and **clone the fork** to your computer. - -**Step 2- Install**: if you have multiple python versions, please activate the version >=3.8 in advance. Follow the installation instructions [here](https://github.com/S2-group/experiment-runner/tree/master), - -**Note**: *It is good practice to use separate virtual environments for different (Python) projects. Do this is you find any errors setting up / running **Experiment Runner**. If you have never worked with virtual environments in Python, check [venv](https://docs.python.org/3/library/venv.html) or [miniconda](https://docs.anaconda.com/miniconda/).* - -**Step 3-Run example**: check if the example program ran correctly (i.e., no errors), this example serves as an equivalent of a "Hello World" program, run: -``` -python experiment-runner/ examples/hello-world/RunnerConfig.py -``` - -The results are generated in the `examples/hello-world/experiments` folder. It should be named as `new_runner_experiment` by default. - -### 2. [EnergiBridge](https://github.com/tdurieux/EnergiBridge) -Energibridge is a cross-platform energy measurement utility that provides support for Linux, Windows, and MacOS, as well as Intel, AMD, and Apple ARM CPU architectures. This tool is designed to collect resource usage data for a command to execute and to output the data in a CSV format. - -**Step 1:** Follow the installation instructions for your platform from the [EnergiBrigde repo](https://github.com/tdurieux/EnergiBridge?tab=readme-ov-file#install). - -**Step 2:** Check if EnergiBridge is installed using `energibridge -h` - - -## Troubleshooting - -- `cargo` error: -```bash -$ cargo build -r -cargo: command not found -``` -You problably don't have Rust installed, follow the installation instructions [here](https://www.rust-lang.org/tools/install). - -- `energibridge` not found: -```bash -$ energibridge -h -energibridge: command not found -``` -`energibridge` is not in your `$PATH`. Navigate to the `EnergiBridge` installation directory and you will find the binary under `target/release`. Add this directory to your path or, alternatively, copy the binary to a directory that is already in your path. - -- `energibridge` permission error: -```bash -$ energibridge sleep 3 -thread 'main' panicked at src/cpu/intel.rs:34:85: -called `Result::unwrap()` on an `Err` value: Os { code: 13, kind: PermissionDenied, message: "Permission denied" } -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace -``` -`energibridge` is trying to access protected files for which it doesn't have permission. Even though you followed [the setup](https://github.com/tdurieux/EnergiBridge) step by step this can happen dependig on your distro. Fast fix is running it as `sudo`. - -**Note**: *When you run `energibridge` as `sudo` your user `$PATH` is not loaded, so either you specify the whole path (e.g. `/path/to/energibridge/target/release/energibridge`) or you copy the binary to a system-wide available path (e.g. `/usr/bin`).* - diff --git a/ex2/README.md b/ex2/README.md deleted file mode 100644 index e3206ed..0000000 --- a/ex2/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# EX 2- Getting to know [EnergiBridge](https://github.com/tdurieux/EnergiBridge) - -## Exercise -For now we're going to stick with a simple experiment with one single factor and one single level. Later on -we will see how to run more interesting experiments. The focus of this exercise is to teach you understand how `EnergiBridge` act as a profiler within the `experiment-runner` framework. For this, we just want a single run of -the following command: -``` -energibridge --summary -o test.csv sleep 5 -``` - -We will measure the total CPU energy and the total memory used of 5 seconds. Example Output in terminal: -``` -Energy consumption in joules: 253.86045820617682 for 5.1230927 sec of execution. -``` -Open the generated `test.csv` file to check details of raw EnergiBridge file. Output Format of `test.csv`: -``` -Delta,Time,CPU_FREQUENCY_0,CPU_FREQUENCY_1,CPU_FREQUENCY_2,CPU_FREQUENCY_3,CPU_FREQUENCY_4,CPU_FREQUENCY_5,CPU_FREQUENCY_6,CPU_FREQUENCY_7,CPU_FREQUENCY_8,CPU_FREQUENCY_9,CPU_TEMP_0,CPU_TEMP_1,CPU_TEMP_2,CPU_TEMP_3,CPU_TEMP_4,CPU_TEMP_5,CPU_TEMP_6,CPU_TEMP_7,CPU_TEMP_8,CPU_TEMP_9,CPU_USAGE_0,CPU_USAGE_1,CPU_USAGE_2,CPU_USAGE_3,CPU_USAGE_4,CPU_USAGE_5,CPU_USAGE_6,CPU_USAGE_7,CPU_USAGE_8,CPU_USAGE_9,SYSTEM_POWER (Watts),TOTAL_MEMORY,TOTAL_SWAP,USED_MEMORY,USED_SWAP -0,1697704464320,0,0,0,0,0,0,0,0,0,0,46.529457092285156,44.31881332397461,43.83422088623047,47.03656005859375,44.67115783691406,43.856910705566406,41.333412170410156,41.268951416015625,44.348262786865234,43.08387756347656,46.37215805053711,45.429779052734375,15.021618843078613,8.819367408752441,5.0954484939575195,3.514699935913086,2.9715969562530518,1.5818228721618652,1.1069598197937012,0.9475208520889282,11.58033275604248,34359738368,0,10188488704,0 -104,1697704464321,0,0,0,0,0,0,0,0,0,0,46.529457092285156,44.31881332397461,43.83422088623047,47.03656005859375,44.67115783691406,43.856910705566406,41.333412170410156,41.268951416015625,44.348262786865234,43.08387756347656,46.37215042114258,45.429771423339844,15.021615982055664,8.819366455078125,5.095447063446045,3.514699697494507,2.9715967178344727,1.5818227529525757,1.1069598197937012,0.9475207924842834,11.58033275604248,34359738368,0,10189275136,0 -``` - -Energy consumption calculated by EnergiBridge is **system dependent**, and output can change accordingly. Some details can refer to [this](https://github.com/tdurieux/EnergiBridge/blob/main/chart.ipynb). - - - - - diff --git a/ex3/README.md b/ex3/README.md deleted file mode 100644 index 2a74797..0000000 --- a/ex3/README.md +++ /dev/null @@ -1,101 +0,0 @@ -# EX 3 - Understand the RunTableModel and `RunnerConfig.py` -## Overview - -**The RunTableModel** defines an experiment's measurements with *Factors*, their *Treatment* levels, *exclude certain combinations* of Treatments, number of *repetitions* and add *data columns* for storing aggregated data. - -**RunnerConfig.py** is the entrance that passes user-defined configuration to Experiment Runner Controller. Experiment Runner will: -- Validate the config -- Output the config's values as read by Experiment Runner in the console for user validation -- Create the experiment folder -- Create the run table (.csv), and persist it in the experiment folder -- Execute the experiment on a per-variation basis, going over each variation with its specified treatments in the run table. - - -Then following examples use part code of `experiment-runner/examples/hello-world-fibonacci -/RunnerConfig.py`. -## Example 1 - -```python -def create_run_table_model(self) -> RunTableModel: - """Create and return the run_table model here. A run_table is a List (rows) of tuples (columns), - representing each run performed""" - factor1 = FactorModel("fib_type", ['iter', 'mem', 'rec']) - factor2 = FactorModel("problem_size", [10, 35, 40, 5000, 10000]) - self.run_table_model = RunTableModel( - factors=[factor1, factor2], - exclude_combinations=[ - {factor2: [10]}, # all runs having treatment "10" will be excluded - {factor1: ['rec'], factor2: [5000, 10000]}, - {factor1: ['mem', 'iter'], factor2: [35, 40]}, # all runs having the combination ("iter", 30) will be excluded - ], - repetitions = 10, - data_columns=["energy", "runtime", "memory"] - ) - return self.run_table_model - -``` -It is expected to repeat 10 times, generate 60 experiment results in total, and produce `run_table.csv` in the following format (this example was produced on Mac, energy in Watts): - -|__run_id | __done | fib_type | problem_size | energy | runtime | memory| -| ------------- | ------------- |-------------| ------------- | ------------- |-------------|-------------| -|run_0_repetition_0 | DONE | rec | 40 | 61.3 | 21.9402 | 10778673152| - -Check `experiment-runner/examples/hello-world-fibonacci/experiments/new_runner_experiment/` and explore more details. - - -## Example 2 - -```python -def start_measurement(self, context: RunnerContext) -> None: - """Perform any activity required for starting measurements.""" - fib_type = context.execute_run["fib_type"] - problem_size = context.execute_run["problem_size"] - - self.profiler = EnergiBridge(target_program=f"python examples/hello-world-fibonacci/fibonacci_{fib_type}.py {problem_size}", - out_file=context.run_dir / "energibridge.csv") - - self.profiler.start() -``` - -```python - -def populate_run_data(self, context: RunnerContext) -> Optional[Dict[str, Any]]: - """Parse and process any measurement data here. - You can also store the raw measurement data under `context.run_dir` - Returns a dictionary with keys `self.run_table_model.data_columns` and their values populated""" - - eb_log, eb_summary = self.profiler.parse_log(self.profiler.logfile, - self.profiler.summary_logfile) - - return {"energy": list(eb_log["PACKAGE_ENERGY (J)"].values())[-1] - list(eb_log["PACKAGE_ENERGY (J)"].values())[0], # Linux Output - "runtime": eb_summary["runtime_seconds"], - "memory": max(eb_log["USED_MEMORY"].values())} -``` - -`run_table.csv` shows the final results, generated by combining all `energibridge.csv` files from 10 repetitions. The computation follows the method in `populate_run_date()`. You can check the code for more details. - -## Exploration -Play around with more parameters and see what happens. - -### Using Hooks in Experiment-Runner -Hooks in `experiment-runner` are specific methods within the `RunnerConfig` class. They allow you to execute actions at various points during the lifecycle of an experiment. These hooks can be used to prepare data, initiate measurements, handle results, etc. - -### Hooks Descriptions - - `before_experiment()`: called once before the entire experiment starts. It is generally used to perform any initial setup required for the experiment - - `before_run()`: invoked before each individual run within an experiment - - `start_run()`: called at the very start of each run - - `start_measurement()`: triggered when the measurement phase of each run starts - - `interact()`: used to interact with the running target system - - `stop_measurement()`: called to stop any ongoing measurements - - `stop_run()` : called after a run completes - - `populate_run_data()`: used to process and populate the run data once a run is completed - - `after_experiment()`: called once after the entire experiment ends. It can be used to perform any cleanup or finalization required at the end of all runs - -## Troubleshooting -- `FileExistsError` error -``` -FileExistsError: [Errno 17] File exists.. -``` -This may be because a directory with the default name `new_runner_experiment` already exists. You can either delete it if it’s no longer needed, or change the parameter at `RunnerConfig.py`. - - From a900c5ed3f362b267bfb4ff8eeee25133dbe7bea Mon Sep 17 00:00:00 2001 From: Andrei Dragomir Date: Thu, 11 Sep 2025 15:39:19 +0200 Subject: [PATCH 24/31] Added lab slides as well --- Green Lab - Lab 1.pptx.pdf | Bin 0 -> 298704 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Green Lab - Lab 1.pptx.pdf diff --git a/Green Lab - Lab 1.pptx.pdf b/Green Lab - Lab 1.pptx.pdf new file mode 100644 index 0000000000000000000000000000000000000000..aca87fb9175e5c88f9b7a2f46fc04d56bd4f0585 GIT binary patch literal 298704 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≪# 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

k^kzui*2q-FC8 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

x$ATWF57#zC!;(Y>&Jk5c}T)i%p7*ug*8?! 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

H>UJIW7Yj{ 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 z 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 b5s|H(j*Z=)&jx^z*kBM08k*Nqf*AiFJ>fKL literal 0 HcmV?d00001 From bc22c1eea019373c21323f5164c47166afcd5256 Mon Sep 17 00:00:00 2001 From: Andrei Dragomir Date: Thu, 11 Sep 2025 15:41:33 +0200 Subject: [PATCH 25/31] Small change --- .../Green Lab - Lab 1.pptx.pdf | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename Green Lab - Lab 1.pptx.pdf => Lab 1/Green Lab - Lab 1.pptx.pdf (100%) diff --git a/Green Lab - Lab 1.pptx.pdf b/Lab 1/Green Lab - Lab 1.pptx.pdf similarity index 100% rename from Green Lab - Lab 1.pptx.pdf rename to Lab 1/Green Lab - Lab 1.pptx.pdf From 27a57f7b4e122e820db3e659b90269a6a651bc9f Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Fri, 12 Sep 2025 15:48:57 +0800 Subject: [PATCH 26/31] Add troubleshooting guide for Rust and Energibridge --- Lab 1/troubleshooting.md | 67 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Lab 1/troubleshooting.md diff --git a/Lab 1/troubleshooting.md b/Lab 1/troubleshooting.md new file mode 100644 index 0000000..6c7d4e9 --- /dev/null +++ b/Lab 1/troubleshooting.md @@ -0,0 +1,67 @@ +## 3. Troubleshooting + +### Rust / Cargo not found + +```bash +$ cargo build -r +cargo: command not found +``` + +➡️ Install Rust: [rust-lang.org/tools/install](https://www.rust-lang.org/tools/install). + +--- + +### Energibridge command not found (after installation) + +```bash +$ energibridge -h +energibridge: command not found +``` + +This happens because your OS does not know where to find energibridge (yet). To **fix this** you can use one of the following options: + + +#### Option 1: Add to PATH temporarily + +You can run the following command in a shell: +```bash +export PATH=$PATH:/target/release +``` + +Works **only for the current shell** session. + +#### Option 2: Add to PATH permanently +Append the line to your shell configuration file (e.g., `~/.bashrc`, `~/.zshrc`): + +```bash +echo 'export PATH=$PATH:~/EnergiBridge/target/release' >> ~/.bashrc +source ~/.bashrc +``` + +After this, energibridge will be available in all new terminal sessions. + +#### Option 3 (RECOMMENDED): Copy binary to a system-wide directory +```bash +sudo cp /target/release/energibridge /usr/local/bin/ +``` + +After this, you can run `energibridge` from anywhere without modifying configs. + +Run `energibridge -h` to check that it works. + +--- + +### Permission error + +```bash +$ energibridge sleep 3 +Permission denied +``` + +Run with `sudo`: + +```bash +sudo /path/to/energibridge sleep 3 +``` + +**Note:** When running with `sudo`, your user `$PATH` is not loaded. Use the **full path** or copy the binary to a system-wide directory. From d9ba53f70d07cc1f06b07408fdb78f0175a71488 Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Fri, 12 Sep 2025 12:52:52 +0200 Subject: [PATCH 27/31] Create README.md with MacOS installation guide --- lab2/README.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 lab2/README.md diff --git a/lab2/README.md b/lab2/README.md new file mode 100644 index 0000000..9cc8544 --- /dev/null +++ b/lab2/README.md @@ -0,0 +1,39 @@ +# Instruction for MacOS + +## How to install android runner + +***Fork and Git Clone*** + +- 1. Click on the Fork icon in the top right hand corner once you're logged into Github. +- 2. Once it finishes loading, click on the green Code button. Run + ``` + git clone git@github.com:[your_username]/android-runner.git + ``` +- 3. Type `cd android-runner` to enter the framework's main directory. +## Set up environment and dependencies +***Set up virtual environment*** +Create a virtual environment: `python3 -m venv /path/` +This can be anywhere on your machine. Activate it with `source /path/bin/activate` + +***Install dependencies(MacOS)*** + +- Make sure you have [Homebrew](https://brew.sh/) installed +- Install OpenJDK 8, Android SDK and Platform Tools: + ``` + brew install --cask temurin@8 android-sdk android-platform-tools + ``` + +*If want to update outdated formulae, can `brew update && brew upgrade && brew cleanup` to upgrade and all installed packages, clean outdated ones.* + + +- Install libxml2: `brew install libxml2` +- Check Java version: java -version, if you are running a different version than 1.8/8, `brew install jenv` +Run `/usr/libexec/java_home -V` to see the location of your Java environments +Copy the location of your AdoptOpenJDK8 environment +`Run jenv add ` +`Run jenv global 1.8` +Restart terminal and verify your Java version with java -version, it should output openjdk version "1.8.0_265" +Verify that monkeyrunner works with monkeyrunner --version, it should output unrecognized argument and no other errors +Install the requirements, under the android-runner: `pip install -r requirements.txt` + + From 2ea8808bee8c92028a9e6ab5b046de24bf79805a Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Mon, 15 Sep 2025 21:57:21 +0200 Subject: [PATCH 28/31] Fix README formatting and improve setup instructions Correct formatting and clarify instructions for setting up the environment and dependencies. --- lab2/README.md | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/lab2/README.md b/lab2/README.md index 9cc8544..2329de0 100644 --- a/lab2/README.md +++ b/lab2/README.md @@ -12,10 +12,11 @@ - 3. Type `cd android-runner` to enter the framework's main directory. ## Set up environment and dependencies ***Set up virtual environment*** + Create a virtual environment: `python3 -m venv /path/` This can be anywhere on your machine. Activate it with `source /path/bin/activate` -***Install dependencies(MacOS)*** +***Install dependencies (MacOS)*** - Make sure you have [Homebrew](https://brew.sh/) installed - Install OpenJDK 8, Android SDK and Platform Tools: @@ -23,17 +24,29 @@ This can be anywhere on your machine. Activate it with `source /path/bin/activat brew install --cask temurin@8 android-sdk android-platform-tools ``` -*If want to update outdated formulae, can `brew update && brew upgrade && brew cleanup` to upgrade and all installed packages, clean outdated ones.* +*If you meet the notice of outdated formulae, can `brew update && brew upgrade && brew cleanup` to upgrade all installed packages, and clean outdated ones.* - Install libxml2: `brew install libxml2` - Check Java version: java -version, if you are running a different version than 1.8/8, `brew install jenv` -Run `/usr/libexec/java_home -V` to see the location of your Java environments -Copy the location of your AdoptOpenJDK8 environment -`Run jenv add ` -`Run jenv global 1.8` -Restart terminal and verify your Java version with java -version, it should output openjdk version "1.8.0_265" -Verify that monkeyrunner works with monkeyrunner --version, it should output unrecognized argument and no other errors -Install the requirements, under the android-runner: `pip install -r requirements.txt` - +- Run `/usr/libexec/java_home -V` to see the location of your Java environments +- Copy the location of your AdoptOpenJDK8 environment: + ``` + Run jenv add + Run jenv global 1.8 + ``` +- Restart terminal and verify your Java version with java -version, it should output openjdk version "1.8.0_265" +- Install the requirements, under the android-runner: `pip install -r requirements.txt` + +## Install the [Android Studio](https://developer.android.com/studio/install) +**NOT support Windows machines with ARM-based CPUs** + +1. After installation, create a new project, preferly with less cumulative distribution (minimum SDK settings). +2. Run the created device, it would take a while to finish. +3. Check the running emulator ID:`adb devices`, it typically displays: +``` +List of devices attached +emulator-5554 device +``` +4. Change the `devices` settings in `config.json` file using the displayed device identifier (with mapping to key-value pairs in `devices.json`). From eec2e504d9504980fbf0ac68bb64f3e772fc4967 Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Wed, 17 Sep 2025 16:29:05 +0800 Subject: [PATCH 29/31] Update README.md --- lab2/README.md | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/lab2/README.md b/lab2/README.md index 2329de0..0c135f9 100644 --- a/lab2/README.md +++ b/lab2/README.md @@ -9,26 +9,43 @@ ``` git clone git@github.com:[your_username]/android-runner.git ``` -- 3. Type `cd android-runner` to enter the framework's main directory. +- 3. Type `cd android-runner` to enter the framework's main directory. + + ## Set up environment and dependencies -***Set up virtual environment*** + +**Set up virtual environment** Create a virtual environment: `python3 -m venv /path/` This can be anywhere on your machine. Activate it with `source /path/bin/activate` -***Install dependencies (MacOS)*** +**Install dependencies (MacOS)** + +1. Make sure you have [Homebrew](https://brew.sh/) installed +``` +brew --version +``` + +2. Install OpenJDK8, sdk, and platform tools -- Make sure you have [Homebrew](https://brew.sh/) installed -- Install OpenJDK 8, Android SDK and Platform Tools: +Option 1: (for Emulation) Install OpenJDK 8, Android Studio and Platform Tools: ``` - brew install --cask temurin@8 android-sdk android-platform-tools + brew install --cask temurin@8 android-studio android-platform-tools ``` - -*If you meet the notice of outdated formulae, can `brew update && brew upgrade && brew cleanup` to upgrade all installed packages, and clean outdated ones.* + Option 2: (for Android Phone) Install OpenJDK 8, CommandLineTools and Platform Tools: + ``` + brew install --cask temurin@8 android-commandlinetools android-platform-tools + ``` + *If you meet the notice of outdated formulae, can `brew update && brew upgrade && brew cleanup` to upgrade all installed packages, and clean outdated ones.* -- Install libxml2: `brew install libxml2` -- Check Java version: java -version, if you are running a different version than 1.8/8, `brew install jenv` +3. Install libxml2: +``` +brew install libxml2 +``` + +4. Check Java version: + java -version, if you are running a different version than 1.8/8, `brew install jenv` - Run `/usr/libexec/java_home -V` to see the location of your Java environments - Copy the location of your AdoptOpenJDK8 environment: ``` From 18e881d6d1062d791ea9a627533d528b6efc4eff Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Wed, 17 Sep 2025 17:18:04 +0800 Subject: [PATCH 30/31] Fix formatting in README for Android runner setup --- lab2/README.md | 48 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/lab2/README.md b/lab2/README.md index 0c135f9..0e1eef2 100644 --- a/lab2/README.md +++ b/lab2/README.md @@ -2,22 +2,24 @@ ## How to install android runner -***Fork and Git Clone*** +**Fork and Git Clone** -- 1. Click on the Fork icon in the top right hand corner once you're logged into Github. -- 2. Once it finishes loading, click on the green Code button. Run +1. Click on the Fork icon in the top right hand corner once you're logged into Github. + +2. Once it finishes loading, click on the green Code button. Run ``` git clone git@github.com:[your_username]/android-runner.git ``` -- 3. Type `cd android-runner` to enter the framework's main directory. + ## Set up environment and dependencies **Set up virtual environment** -Create a virtual environment: `python3 -m venv /path/` -This can be anywhere on your machine. Activate it with `source /path/bin/activate` +1. If you do not have, create a virtual environment: `python3 -m venv /path/`. This can be anywhere on your machine. + +2. Activate it with `source /path/bin/activate` **Install dependencies (MacOS)** @@ -44,6 +46,7 @@ Option 1: (for Emulation) Install OpenJDK 8, Android Studio and Platform Tools: brew install libxml2 ``` + 4. Check Java version: java -version, if you are running a different version than 1.8/8, `brew install jenv` - Run `/usr/libexec/java_home -V` to see the location of your Java environments @@ -67,3 +70,36 @@ emulator-5554 device ``` 4. Change the `devices` settings in `config.json` file using the displayed device identifier (with mapping to key-value pairs in `devices.json`). + +- 3. Type `cd android-runner` to enter the framework's main directory. + + +# Troubleshooting +1. Emulator Not Found +``` +command not found: emulator +``` +This error is because `emulator` is not in the current system environment. + +**For Windows** + +Temporary addition (valid for current session only) +``` +set PATH=%PATH%;C:\Users\[username]\AppData\Local\Android\Sdk\emulator +``` + +Permanent addition: Right-click "This PC" → Properties → Advanced system settings → Environment Variables. Find Path in system variables, edit, and add emulator path + +**For MacOS/Linux** + +Temporary addition (valid for current session only) +``` +export PATH=$PATH:~/Library/Android/sdk/emulator +``` + +Permanently add to the terminal (`bashrc` or `zshrc`): + +``` +echo 'export PATH=$PATH:~/Library/Android/sdk/emulator' >> ~/.bashrc +source ~/.bashrc` +``` From eb39722d9de5cf4f404a5aee1cd88aeb03392d46 Mon Sep 17 00:00:00 2001 From: Cedar_Cheng <70186814+DaydreamCreator@users.noreply.github.com> Date: Fri, 19 Sep 2025 04:05:53 +0800 Subject: [PATCH 31/31] Revise MacOS installation instructions in README --- lab2/README.md | 33 +++------------------------------ 1 file changed, 3 insertions(+), 30 deletions(-) diff --git a/lab2/README.md b/lab2/README.md index 0e1eef2..5e695d8 100644 --- a/lab2/README.md +++ b/lab2/README.md @@ -1,16 +1,4 @@ -# Instruction for MacOS - -## How to install android runner - -**Fork and Git Clone** - -1. Click on the Fork icon in the top right hand corner once you're logged into Github. - -2. Once it finishes loading, click on the green Code button. Run - ``` - git clone git@github.com:[your_username]/android-runner.git - ``` - +# Instruction of Dependencies Installation for MacOS ## Set up environment and dependencies @@ -23,7 +11,7 @@ **Install dependencies (MacOS)** -1. Make sure you have [Homebrew](https://brew.sh/) installed +1. Make sure you have [Homebrew](https://brew.sh/) installed, check: ``` brew --version ``` @@ -47,8 +35,7 @@ brew install libxml2 ``` -4. Check Java version: - java -version, if you are running a different version than 1.8/8, `brew install jenv` +4. Check Java version: `java -version`, if you are running a different version than 1.8/8, `brew install jenv` - Run `/usr/libexec/java_home -V` to see the location of your Java environments - Copy the location of your AdoptOpenJDK8 environment: ``` @@ -58,20 +45,6 @@ brew install libxml2 - Restart terminal and verify your Java version with java -version, it should output openjdk version "1.8.0_265" - Install the requirements, under the android-runner: `pip install -r requirements.txt` -## Install the [Android Studio](https://developer.android.com/studio/install) -**NOT support Windows machines with ARM-based CPUs** - -1. After installation, create a new project, preferly with less cumulative distribution (minimum SDK settings). -2. Run the created device, it would take a while to finish. -3. Check the running emulator ID:`adb devices`, it typically displays: -``` -List of devices attached -emulator-5554 device -``` -4. Change the `devices` settings in `config.json` file using the displayed device identifier (with mapping to key-value pairs in `devices.json`). - - -- 3. Type `cd android-runner` to enter the framework's main directory. # Troubleshooting