diff --git a/README.md b/README.md index a2099e46cac82cdf5022467927c74735c3918372..70e5e7ad299fb32d52eed073fa4cfd6ceee05200 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,23 @@ # 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 - `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 -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 -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. @@ -44,12 +51,9 @@ python3 campaign.py ``` ### 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 jupyter notebook analyse_campaign.ipynb ``` -## More information about these experiments -Here we give more details about how the simulation works. -TODO... (add the picture of the system?) diff --git a/behaviors.svg b/behaviors.svg new file mode 100644 index 0000000000000000000000000000000000000000..ade86793ec8ae5ba6ef689c2a89676d20073997f --- /dev/null +++ b/behaviors.svg @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="435px" height="161px" viewBox="-0.5 -0.5 435 161"><defs/><g><rect x="184" y="12" width="30" height="45" fill="none" stroke="#b85450" stroke-dasharray="3 3" pointer-events="all"/><path d="M 167 135 L 277 135" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 181 135 L 181 85" fill="none" stroke="#004c99" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 237 135 L 237 85" fill="none" stroke="#004c99" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><rect x="240" y="87" width="30" height="45" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 110px; margin-left: 241px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">job</div></div></div></foreignObject><text x="255" y="113" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">job</text></switch></g><path d="M 322 59.89 L 432 59.89" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 336 59.89 L 336 9.89" fill="none" stroke="#004c99" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 392 59.89 L 392 9.89" fill="none" stroke="#004c99" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><rect x="339" y="34.89" width="30" height="22" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 46px; margin-left: 340px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">job</div></div></div></foreignObject><text x="354" y="49" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">job</text></switch></g><path d="M 322 134.26 L 432 134.26" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 336 134.26 L 336 84.26" fill="none" stroke="#004c99" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 167 60 L 277 60" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 181 60 L 181 10" fill="none" stroke="#004c99" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 237 60 L 237 10" fill="none" stroke="#004c99" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 173.75 35.13 L 198.75 35.13 L 198.75 10.13 L 198.75 10.13 L 198.75 35.13 L 223.75 35.13 L 223.75 35.13 L 198.75 35.13 L 198.75 60.13 L 198.75 60.13 L 198.75 35.13 L 173.75 35.13 Z" fill="rgb(255, 255, 255)" stroke="#cc0000" stroke-miterlimit="10" transform="rotate(45,198.75,35.13)" pointer-events="all"/><rect x="184" y="87" width="30" height="45" fill="none" stroke="#b85450" stroke-dasharray="3 3" pointer-events="all"/><rect x="339" y="11.89" width="30" height="45" fill="none" stroke="#b85450" stroke-dasharray="3 3" pointer-events="all"/><rect x="339" y="86.26" width="30" height="45" fill="none" stroke="#b85450" stroke-dasharray="3 3" pointer-events="all"/><rect x="339" y="109.26" width="60" height="22" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 120px; margin-left: 340px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">job</div></div></div></foreignObject><text x="369" y="124" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">job</text></switch></g><path d="M 392 134.26 L 392 84.26" fill="none" stroke="#004c99" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><rect x="195" y="54" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 69px; margin-left: 196px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #97D077; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(151, 208, 119); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">renounce</div></div></div></foreignObject><text x="225" y="73" fill="#97D077" font-family="Helvetica" font-size="12px" text-anchor="middle">renounce</text></switch></g><rect x="195" y="129" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 144px; margin-left: 196px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #97D077; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(151, 208, 119); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">delay</div></div></div></foreignObject><text x="225" y="148" fill="#97D077" font-family="Helvetica" font-size="12px" text-anchor="middle">delay</text></switch></g><rect x="343" y="54" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 69px; margin-left: 344px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #97D077; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(151, 208, 119); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">degrad</div></div></div></foreignObject><text x="373" y="73" fill="#97D077" font-family="Helvetica" font-size="12px" text-anchor="middle">degrad</text></switch></g><rect x="347" y="129" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 144px; margin-left: 348px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #97D077; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(151, 208, 119); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">reconfig</div></div></div></foreignObject><text x="377" y="148" fill="#97D077" font-family="Helvetica" font-size="12px" text-anchor="middle">reconfig</text></switch></g><path d="M 2 130.03 L 132 130.03" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 20.35 130.03 L 20.35 34.35" fill="none" stroke="#004c99" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 107.53 130.03 L 107.53 34.35" fill="none" stroke="#004c99" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><rect x="24.94" y="54.28" width="45.88" height="71.76" fill="#f8cecc" stroke="#b85450" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 44px; height: 1px; padding-top: 90px; margin-left: 26px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">job</div></div></div></foreignObject><text x="48" y="94" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">job</text></switch></g><path d="M 27.49 37 L 98.87 37" fill="none" stroke="#004c99" stroke-miterlimit="10" pointer-events="none"/><path d="M 22.24 37 L 29.24 33.5 L 27.49 37 L 29.24 40.5 Z" fill="#004c99" stroke="#004c99" stroke-miterlimit="10" pointer-events="none"/><path d="M 104.12 37 L 97.12 40.5 L 98.87 37 L 97.12 33.5 Z" fill="#004c99" stroke="#004c99" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 34px; margin-left: 63px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #004C99; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 76, 153); line-height: 1.2; pointer-events: none; white-space: nowrap;">demand response window</div></div></div></foreignObject><text x="63" y="34" fill="#004C99" font-family="Helvetica" font-size="11px" text-anchor="middle">demand res...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 144px; margin-left: 20px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #97D077; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(151, 208, 119); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><div>rigid (baseline)</div></div></div></div></foreignObject><text x="64" y="148" fill="#97D077" font-family="Helvetica" font-size="12px" text-anchor="middle">rigid (baseline)</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file diff --git a/simulated_system.svg b/simulated_system.svg new file mode 100644 index 0000000000000000000000000000000000000000..e54c30415ab642402fde49f0d2b0bd597c0bfa5d --- /dev/null +++ b/simulated_system.svg @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="653px" height="248px" viewBox="-0.5 -0.5 653 248"><defs><clipPath id="mx-clip-281-0-92-110-0"><rect x="281" y="0" width="92" height="110"/></clipPath></defs><g><path d="M 236.75 82.13 L 289.96 128.68" fill="none" stroke="#97d077" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 293.91 132.14 L 286.34 130.16 L 289.96 128.68 L 290.95 124.9 Z" fill="#97d077" stroke="#97d077" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 108px; margin-left: 266px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #6C8EBF; background-color: rgb(255, 255, 255); "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(108, 142, 191); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><div style="font-size: 14px"><font color="#97D077">submit <br style="font-size: 14px" /></font></div><div style="font-size: 14px"><font color="#97D077">jobs<br style="font-size: 14px" /></font></div></div></div></div></foreignObject><text x="266" y="112" fill="#6C8EBF" font-family="Helvetica" font-size="14px" text-anchor="middle">submit...</text></switch></g><rect x="158.75" y="9" width="78" height="78" fill="none" stroke="none" pointer-events="all"/><path d="M 205.97 21.92 C 205.97 16.75 210.25 12.55 215.51 12.55 C 220.77 12.55 225.04 16.75 225.04 21.92 C 225.04 27.08 220.77 31.29 215.51 31.29 C 210.25 31.29 205.97 27.08 205.97 21.92 Z M 226.4 34.41 C 225.26 33.7 224.04 33.11 222.8 32.64 C 226.29 30.31 228.59 26.38 228.59 21.92 C 228.59 14.8 222.72 9 215.51 9 C 208.3 9 202.43 14.8 202.43 21.92 C 202.43 26.37 204.72 30.3 208.2 32.62 C 205.93 33.48 203.8 34.73 201.91 36.34 L 204.22 39.04 C 207.38 36.32 211.38 34.83 215.48 34.83 C 218.67 34.83 221.8 35.73 224.53 37.42 C 229.39 40.44 232.58 45.74 233.12 51.55 L 215.48 51.55 L 215.48 55.09 L 234.98 55.09 C 235.96 55.09 236.75 54.3 236.75 53.32 C 236.75 45.62 232.79 38.37 226.4 34.41 Z M 170.52 21.92 C 170.52 16.75 174.8 12.55 180.06 12.55 C 185.31 12.55 189.59 16.75 189.59 21.92 C 189.59 27.08 185.31 31.29 180.06 31.29 C 174.8 31.29 170.52 27.08 170.52 21.92 Z M 180.02 51.55 L 162.38 51.55 C 163.23 42.18 170.82 34.83 180.02 34.83 C 183.22 34.83 186.35 35.73 189.08 37.42 C 189.85 37.9 190.58 38.44 191.28 39.04 L 193.59 36.35 C 192.76 35.63 191.87 34.98 190.95 34.41 C 189.8 33.7 188.59 33.11 187.34 32.64 C 190.83 30.31 193.14 26.38 193.14 21.92 C 193.14 14.8 187.27 9 180.06 9 C 172.84 9 166.97 14.8 166.97 21.92 C 166.97 26.37 169.27 30.31 172.77 32.63 C 164.6 35.72 158.75 43.81 158.75 53.32 C 158.75 54.3 159.54 55.09 160.52 55.09 L 180.02 55.09 Z M 180.1 83.45 C 180.96 74.09 188.55 66.74 197.75 66.74 C 200.94 66.74 204.08 67.64 206.81 69.33 C 211.66 72.35 214.85 77.65 215.39 83.45 Z M 188.25 53.83 C 188.25 48.66 192.52 44.45 197.78 44.45 C 203.04 44.45 207.32 48.66 207.32 53.83 C 207.32 58.99 203.04 63.2 197.78 63.2 C 192.52 63.2 188.25 58.99 188.25 53.83 Z M 208.68 66.32 C 207.53 65.61 206.32 65.02 205.07 64.54 C 208.56 62.22 210.86 58.29 210.86 53.83 C 210.86 46.7 205 40.91 197.78 40.91 C 190.57 40.91 184.7 46.7 184.7 53.83 C 184.7 58.28 187 62.22 190.49 64.54 C 182.33 67.63 176.48 75.72 176.48 85.23 C 176.48 86.21 177.27 87 178.25 87 L 217.25 87 C 218.23 87 219.02 86.21 219.02 85.23 C 219.02 77.53 215.06 70.28 208.68 66.32 Z" fill="#97d077" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 94px; margin-left: 198px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #97D077; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(151, 208, 119); line-height: 1.2; pointer-events: all; white-space: nowrap;"><div>Users<br /></div></div></div></div></foreignObject><text x="198" y="108" fill="#97D077" font-family="Helvetica" font-size="14px" text-anchor="middle">Users
</text></switch></g><path d="M 382.03 120.5 L 404.75 98.62" fill="none" stroke="#6c8ebf" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 377.17 125.19 L 380.53 115.7 L 382.03 120.5 L 386.77 122.18 Z" fill="#6c8ebf" stroke="#6c8ebf" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 409.61 93.94 L 406.25 103.42 L 404.75 98.62 L 400.01 96.94 Z" fill="#6c8ebf" stroke="#6c8ebf" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="294.75" y="128" width="78" height="78" fill="none" stroke="none" pointer-events="all"/><path d="M 333.75 180.84 C 326.12 180.84 319.91 174.63 319.91 167 C 319.91 159.37 326.12 153.16 333.75 153.16 C 341.38 153.16 347.59 159.37 347.59 167 C 347.59 174.63 341.38 180.84 333.75 180.84 Z M 333.75 149.62 C 324.17 149.62 316.37 157.41 316.37 167 C 316.37 176.59 324.17 184.38 333.75 184.38 C 343.33 184.38 351.13 176.59 351.13 167 C 351.13 157.41 343.33 149.62 333.75 149.62 Z M 369.21 173.63 L 362.95 173.63 C 362.15 173.63 361.45 174.17 361.24 174.95 C 360.58 177.42 359.54 179.21 358.32 181.28 C 357.91 181.97 358.03 182.86 358.6 183.43 L 363.02 187.82 L 354.51 196.27 L 350.08 191.87 C 349.52 191.3 348.64 191.19 347.95 191.59 L 347.56 191.81 C 345.48 193.02 343.97 193.89 341.7 194.49 C 340.93 194.69 340.38 195.4 340.38 196.2 L 340.38 202.45 L 327.12 202.45 L 327.12 196.21 C 327.12 195.4 326.58 194.7 325.8 194.49 C 323.36 193.85 321.6 192.88 319.39 191.58 C 318.7 191.17 317.81 191.29 317.24 191.86 L 312.86 196.27 L 304.42 187.77 L 308.82 183.35 C 309.38 182.78 309.49 181.9 309.09 181.21 L 308.9 180.88 C 307.68 178.77 306.8 177.24 306.2 174.95 C 305.99 174.18 305.29 173.63 304.48 173.63 L 298.29 173.63 L 298.29 160.37 L 304.54 160.37 C 305.35 160.37 306.05 159.83 306.26 159.05 C 306.91 156.56 307.92 154.73 309.17 152.6 C 309.57 151.9 309.46 151.02 308.89 150.45 L 304.47 146.05 L 312.97 137.58 L 317.4 141.99 C 317.96 142.56 318.84 142.67 319.53 142.27 L 319.85 142.09 C 321.97 140.86 323.5 139.97 325.8 139.37 C 326.57 139.16 327.12 138.46 327.12 137.65 L 327.12 131.55 L 340.38 131.55 L 340.38 137.77 C 340.38 138.57 340.92 139.27 341.7 139.48 C 343.95 140.08 345.45 140.97 347.53 142.2 L 347.84 142.38 C 348.54 142.79 349.43 142.68 350 142.1 L 354.32 137.72 L 362.66 146.17 L 358.3 150.58 C 357.74 151.15 357.63 152.02 358.03 152.71 C 359.27 154.88 360.26 156.59 360.9 159.04 C 361.1 159.82 361.8 160.37 362.61 160.37 L 369.21 160.37 Z M 369.43 156.82 L 363.93 156.82 C 363.35 155.05 362.61 153.6 361.77 152.12 L 365.33 148.51 C 366.6 147.22 366.6 145.13 365.33 143.84 L 356.68 135.07 C 355.42 133.79 353.21 133.79 351.95 135.07 L 348.45 138.63 C 347 137.79 345.63 137.04 343.93 136.46 L 343.93 131.32 C 343.93 129.49 342.44 128 340.61 128 L 326.89 128 C 325.06 128 323.57 129.49 323.57 131.32 L 323.57 136.33 C 321.83 136.92 320.42 137.67 318.94 138.52 L 315.32 134.92 C 314.02 133.63 311.92 133.63 310.63 134.92 L 301.81 143.7 C 301.19 144.32 300.84 145.16 300.84 146.05 C 300.84 146.94 301.19 147.77 301.81 148.4 L 305.43 152 C 304.58 153.51 303.82 155.02 303.22 156.82 L 298.07 156.82 C 296.24 156.82 294.75 158.31 294.75 160.14 L 294.75 173.86 C 294.75 175.69 296.24 177.18 298.07 177.18 L 303.16 177.18 C 303.75 178.92 304.5 180.33 305.35 181.81 L 301.75 185.43 C 300.47 186.72 300.47 188.82 301.75 190.11 L 310.5 198.93 C 311.13 199.56 311.97 199.91 312.86 199.91 L 312.86 199.91 C 313.75 199.91 314.59 199.56 315.22 198.93 L 318.79 195.33 C 320.33 196.2 321.81 196.94 323.57 197.53 L 323.57 202.68 C 323.57 204.51 325.06 206 326.89 206 L 340.61 206 C 342.44 206 343.93 204.51 343.93 202.68 L 343.93 197.52 C 345.67 196.93 347.07 196.18 348.55 195.34 L 352.17 198.94 C 353.46 200.22 355.56 200.22 356.86 198.94 L 365.67 190.17 C 366.31 189.55 366.66 188.71 366.66 187.81 C 366.66 186.92 366.31 186.08 365.68 185.46 L 362.07 181.88 C 362.9 180.43 363.67 178.96 364.27 177.18 L 369.43 177.18 C 371.26 177.18 372.75 175.69 372.75 173.86 L 372.75 160.14 C 372.75 158.31 371.26 156.82 369.43 156.82 Z" fill="#6c8ebf" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 213px; margin-left: 334px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #6C8EBF; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(108, 142, 191); line-height: 1.2; pointer-events: all; white-space: nowrap;"><div>Scheduler <br /></div><div>(<i>bin-packing</i>)</div></div></div></div></foreignObject><text x="334" y="227" fill="#6C8EBF" font-family="Helvetica" font-size="14px" text-anchor="middle">Scheduler...</text></switch></g><path d="M 518.01 98.51 L 543.97 122.81" fill="none" stroke="#b85450" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 513.08 93.9 L 522.73 96.77 L 518.01 98.51 L 516.58 103.34 Z" fill="#b85450" stroke="#b85450" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 548.9 127.42 L 539.25 124.56 L 543.97 122.81 L 545.4 117.99 Z" fill="#b85450" stroke="#b85450" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><image x="375.75" y="-0.5" width="168.75" height="89.61" xlink:href="https://batsim.readthedocs.io/en/latest/_static/logo.png" preserveAspectRatio="none"/><rect x="553.25" y="130" width="78" height="76" fill="none" stroke="none" pointer-events="all"/><path d="M 556.86 202.48 L 627.54 202.48 L 627.54 193.92 L 556.86 193.92 Z M 631.06 192.65 L 631.06 203.75 C 631.06 204.99 630.05 206 628.81 206 L 555.59 206 C 554.35 206 553.34 204.99 553.34 203.75 L 553.34 192.65 C 553.34 191.41 554.35 190.4 555.59 190.4 L 628.81 190.4 C 630.05 190.4 631.06 191.41 631.06 192.65 Z M 556.86 182.25 L 627.54 182.25 L 627.54 173.69 L 556.86 173.69 Z M 631.06 172.42 L 631.06 183.52 C 631.06 184.76 630.05 185.77 628.81 185.77 L 555.59 185.77 C 554.35 185.77 553.34 184.76 553.34 183.52 L 553.34 172.42 C 553.34 171.18 554.35 170.17 555.59 170.17 L 628.81 170.17 C 630.05 170.17 631.06 171.18 631.06 172.42 Z M 556.96 162.12 L 627.64 162.12 L 627.64 153.56 L 556.96 153.56 Z M 631.16 152.28 L 631.16 163.39 C 631.16 164.63 630.15 165.63 628.91 165.63 L 555.69 165.63 C 554.45 165.63 553.44 164.63 553.44 163.39 L 553.44 152.28 C 553.44 151.04 554.45 150.04 555.69 150.04 L 628.91 150.04 C 630.15 150.04 631.16 151.04 631.16 152.28 Z M 556.86 142.08 L 627.54 142.08 L 627.54 133.52 L 556.86 133.52 Z M 553.34 143.35 L 553.34 132.25 C 553.34 131.01 554.35 130 555.59 130 L 628.81 130 C 630.05 130 631.06 131.01 631.06 132.25 L 631.06 143.35 C 631.06 144.59 630.05 145.6 628.81 145.6 L 555.59 145.6 C 554.35 145.6 553.34 144.59 553.34 143.35 Z M 559.83 199.87 L 601.66 199.87 L 601.66 196.35 L 559.83 196.35 Z M 559.83 159.6 L 601.66 159.6 L 601.66 156.08 L 559.83 156.08 Z M 589.03 179.83 L 624.62 179.83 L 624.62 176.31 L 589.03 176.31 Z M 589.03 139.56 L 624.62 139.56 L 624.62 136.05 L 589.03 136.05 Z" fill="#b85450" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 213px; margin-left: 592px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #B85450; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(184, 84, 80); line-height: 1.2; pointer-events: all; white-space: nowrap;"><div>Data center</div><div>(<i>16-core machines</i>)<br /></div></div></div></div></foreignObject><text x="592" y="227" fill="#B85450" font-family="Helvetica" font-size="14px" text-anchor="middle">Data center...</text></switch></g><path d="M 94.53 48 L 150.38 48" fill="none" stroke="#97d077" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 155.63 48 L 148.63 51.5 L 150.38 48 L 148.63 44.5 Z" fill="#97d077" stroke="#97d077" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 48px; margin-left: 126px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #97D077; background-color: rgb(255, 255, 255); "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(151, 208, 119); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">read</div></div></div></foreignObject><text x="126" y="52" fill="#97D077" font-family="Helvetica" font-size="14px" text-anchor="middle">read</text></switch></g><rect x="14.75" y="9" width="78" height="78" fill="none" stroke="none" pointer-events="all"/><path d="M 21.18 80.79 L 36.69 80.79 C 37.67 80.79 38.46 80 38.46 79.02 L 38.46 44.9 C 38.46 43.92 37.67 43.13 36.69 43.13 L 21.18 43.13 C 20.2 43.13 19.4 43.92 19.4 44.9 L 19.4 79.02 C 19.4 80 20.2 80.79 21.18 80.79 Z M 22.95 77.25 L 22.95 46.67 L 34.92 46.67 L 34.92 77.25 Z M 45.99 80.79 L 61.51 80.79 C 62.49 80.79 63.28 80 63.28 79.02 L 63.28 52.65 C 63.28 51.68 62.49 50.88 61.51 50.88 L 45.99 50.88 C 45.02 50.88 44.22 51.68 44.22 52.65 L 44.22 79.02 C 44.22 80 45.02 80.79 45.99 80.79 Z M 47.77 77.25 L 47.77 54.42 L 59.73 54.42 L 59.73 77.25 Z M 14.97 87 L 92.53 87 L 92.53 83.46 L 14.97 83.46 Z M 70.22 34.26 L 86.92 34.26 C 89.28 34.26 91.2 32.34 91.2 29.98 L 91.2 13.28 C 91.2 10.92 89.28 9 86.92 9 L 70.22 9 C 67.86 9 65.94 10.92 65.94 13.28 L 65.94 29.98 C 65.94 32.34 67.86 34.26 70.22 34.26 Z M 69.48 13.28 C 69.48 12.87 69.81 12.54 70.22 12.54 L 86.92 12.54 C 87.32 12.54 87.66 12.87 87.66 13.28 L 87.66 29.98 C 87.66 30.38 87.32 30.72 86.92 30.72 L 70.22 30.72 C 69.81 30.72 69.48 30.38 69.48 29.98 Z M 70.81 36.92 C 69.83 36.92 69.04 37.71 69.04 38.69 L 69.04 79.02 C 69.04 80 69.83 80.79 70.81 80.79 L 86.33 80.79 C 87.31 80.79 88.1 80 88.1 79.02 L 88.1 38.69 C 88.1 37.71 87.31 36.92 86.33 36.92 Z M 72.59 77.25 L 72.59 40.46 L 84.55 40.46 L 84.55 77.25 Z" fill="#97d077" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 94px; margin-left: 54px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #97D077; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(151, 208, 119); line-height: 1.2; pointer-events: all; white-space: nowrap;"><div style="font-size: 14px">Original workload</div><div style="font-size: 14px"><i>(Metacentrum</i>)<br /></div></div></div></div></foreignObject><text x="54" y="108" fill="#97D077" font-family="Helvetica" font-size="14px" text-anchor="middle">Original wo...</text></switch></g><rect x="277" y="0" width="100" height="110" fill="none" stroke="none" pointer-events="all"/><g fill="#97D077" font-family="Helvetica" clip-path="url(#mx-clip-281-0-92-110-0)" font-size="12px"><text x="282.5" y="17.5">Behavior:</text><text x="282.5" y="31.5">- rigid</text><text x="282.5" y="45.5">- renounce</text><text x="282.5" y="59.5">- delay</text><text x="282.5" y="73.5">- reconfigure</text><text x="282.5" y="87.5">- degrade</text></g><path d="M 276 9 L 271 9 Q 266 9 266 19 L 266 38.5 Q 266 48.5 261 48.5 L 258.5 48.5 Q 256 48.5 261 48.5 L 263.5 48.5 Q 266 48.5 266 58.5 L 266 78 Q 266 88 271 88 L 276 88" fill="none" stroke="#97d077" stroke-miterlimit="10" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file