Characterization of different user behaviors for demand response in data centers
This repository contains the scripts and files needed to reproduce the experiments presented in the paper "Characterization of different user behaviors for demand response in data centers" submitted to Euro-Par conference 2022.
Description of the main files
-
0_prepare_workload.ipynb
: Jupyter notebook downloading and preparing the workload trace used in the experiments -
campaign2.py
: Python script preparing and launching in parallel the 105 experiments. Each experiment corresponds to one instance ofinstance2.py
. -
analyse_campaign2.ipynb
: Jupyter notebook analysing the results and plotting the graphs shown in the article
(campaign1 is another set of experiements not discussed in the article. We kept it here but beware that some path might be broken...)
Steps to reproduce
You will need ~10GB disk space for the inputs, outputs and dependencies.
1. Install
For the sake reproductibility, all the dependancies for these experiments and their version (release tag or commit number) are managed with the package manager Nix. If you don't have it on your machine, the following command should install it. Otherwise, please refer to their documentation.
curl -L https://nixos.org/nix/install | sh
The main software used (and configured in the file default.nix
) are:
- Batsim and SimGrid for the infrastructure simulation
- Batmen: our set of schedulers for batsim and plugin to simulate users
- python3, pandas, jupyter, matplotlib etc. for the data analysis
Enter a shell with all dependencies managed. This will take some time to download and compile the first time you launch it, but then all the environment is cached for future use.
nix-shell -A exp_env
2. Prepare input workload
Inside the nix shell, start a notebook and follow the steps presented in 0_prepare_workload.ipynb
:
jupyter notebook 0_prepare_workload.ipynb
3. Launch the campaign
Still inside the nix shell, launch the python script. It took about 2 hours for us to execute in parallel on a 16-core Intel Xeon E5-2630 v3 machine.
python3 campaign2.py
4. Analyse the results
jupyter notebook analyse_campaign2.ipynb