# Characterization of different user behaviors for demand response in data centers
# Characterization of different user behaviors for demand response in data centers
This repository is the artifact associated to the publication "Characterization of different user behaviors for demand response in data centers" presented at [Euro-Par 2022](https://2022.euro-par.org/). It contains all the scripts and files needed to reproduce the experiments presented in the paper.
This repository is the artifact associated with the publication "Characterization of different user behaviors for demand response in data centers" presented at [Euro-Par 2022](https://2022.euro-par.org/). It contains all the scripts and files needed to reproduce the experiments presented in the paper.
## Description of the main files
## General description of the experiments
We use a simulation of the RJMS (Resource and Job Management System) of a data center to study the impact of the users' submission behavior on the energy consumed, the average waiting time and the average slowdown. The simulated system is depicted below:

We replay the trace of 105 days taken from the workload [metacentrum](https://www.cs.huji.ac.il/labs/parallel/workload/l_metacentrum2/index.html). For each of these days, we replay the trace as in the original file exept during a window of 1 (resp. 4) hour where all the users are assumed to adopt one of the following submission behaviors:

## Description of the repository
-`prepare_workload.ipynb`: Jupyter notebook downloading and preparing the workload trace used in the experiments
-`prepare_workload.ipynb`: Jupyter notebook downloading and preparing the workload trace used in the experiments
-`campaign.py`: Python script preparing and launching in parallel the 105 experiments. Each experiment corresponds to one instance of `instance.py`
-`campaign.py`: Python script preparing and launching in parallel the 105 experiments. Each experiment corresponds to one instance of `instance.py`
-`analyse_campaign.ipynb`: Jupyter notebook analysing the results from the campaign and plotting the graphs shown in the article
-`analyse_campaign.ipynb`: Jupyter notebook analysing the results from the campaign and plotting the graphs shown in the article
We also made use of some handy scripts to install the environment and launch the experiments on Grid'5000 that are not directly necessary to reproduce the results but that we leave in the folder `scripts` for interested readers.
We also made use of some handy scripts to install the environment and launch the experiments in the [Grid'5000 testbed](https://www.grid5000.fr). They are not directly necessary to reproduce our results but we left them in the folder `scripts` for interested readers.
## Steps to reproduce
## Steps to reproduce
You should be able to reproduce the experiments with a standard Linux machine (laptop, desktop, one cluster node), with a graphical interface for the Jupyter notebooks. We personnaly used a 16-core Intel Xeon E5-2630 v3 machine from [Grid'5000 testbed](https://www.grid5000.fr)on which the experiments ran in less than two hours.
You should be able to reproduce the experiments with a standard Linux machine (laptop, desktop, one cluster node) that has a graphical interface for the Jupyter notebooks. We personnaly used a 16-core Intel Xeon E5-2630 v3 machine from Grid'5000 on which the experiments ran in less than two hours.
You will need ~10GB disk space for the inputs, outputs and dependencies.
You will need ~10GB disk space for the inputs, outputs and dependencies.
...
@@ -44,12 +51,9 @@ python3 campaign.py
...
@@ -44,12 +51,9 @@ python3 campaign.py
```
```
### 4. Analyse the results
### 4. Analyse the results
Finally and still in the nix shell, run this Jupyter notebook to plot the graphs displayed in the article:
Finally and still in the nix shell, run this Jupyter notebook to plot the graphs displayed in the article (~15-20mn):
```bash
```bash
jupyter notebook analyse_campaign.ipynb
jupyter notebook analyse_campaign.ipynb
```
```
## More information about these experiments
Here we give more details about how the simulation works.