You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- 10 hours for 1020 experiments on a 256 vCPU machine with pool size of 128 threads.
35
+
To explain the bash script generated (e.g., `run_scripts_0511.sh`)
36
+
- Each experiment is conducted via [scripts/generate_config_and_run.py](../scripts/generate_config_and_run.py)
37
+
- Firstly, the script generates two configuration yaml files in that folder, which are served as input to `bin/simon apply` (i.e., cluster-config and scheduler-config, see "🔥 Quickstart Example" in repo [README](../README.md)),
38
+
- Then, it execute the `bin/simon apply` command (confirmed by passing the `-e` parameter to the script)
39
+
- The `bin/simon`, written in Golang, will schedule the tasks and produce a scheduling log file in the corresponding folder.
40
+
- Afterwards, [scripts/analysis.py](../scripts/analysis.py) is executed to parse logs and yields multiple `analysis_*` files in the folder
38
41
39
-
### Merge
42
+
In fact, it takes around
43
+
- 10 minutes for 1 experiment on 2 vCPU, 9.4MB disk space for logs.
44
+
- 10 hours for 1020 experiments on a 256 vCPU machine with pool size of 128 threads, 9.4GB disk space for logs.
45
+
46
+
### Analysis & Merge
47
+
48
+
As each experiment has its own folder where the `analysis_*` files are produced, here we bypass all folders and merge all the analysis files of the same category into one file under the `analysis/analysis_results` folder.
49
+
50
+
The top folder of the experiment varies with DATE (e.g., `2023_0511`), while the `analysis_merge.sh` is hard-coded to bypass and merge folders under the `data` folder. Therefore, we need to softlink the top folder to be merged to `data` (e.g., `$ ln -s 2023_0511 data`) before executing `$ bash analysis_merge.sh`.
# The output was generated under "analysis_results"
48
-
# The results of our large-scale experiments are cached in "expected_results" for comparison
57
+
# The output will be put under "analysis_results" folder
58
+
$ bash analysis_merge.sh
49
59
```
50
60
61
+
Our results of the extensive 1020 experiments are cached in [analysis/expected_results](./analysis/expected_results/) (9.8MB) for your reference.
62
+
51
63
### Plot
52
64
53
-
Automatically generate figures in the paper based on the analysis results and compare them with the results in the [expected_results](plot/expected_results) directory.
54
-
For example, running `python plot_paib_alloc.py` will generate `paib_alloc.pdf` figure, which corresponds to Fig. 9(a) in the paper.
65
+
To reproduce the figures shown in the paper, we provide the plotting scripts in the [plot](./plot/) folder. As the scripts assume the existence of the merged `analysis_*.csv` files, we need to first copy (or softlink) these files to [plot](./plot/) folder
$ cp analysis/analysis_results/* plot/ # copy all csv under analysis_results/ to plot/ for analysis
61
-
# cp analysis/expected_results/* plot/ # if skipping the experiments and directly reuse our expected results for plotting
72
+
```
73
+
74
+
if you have skipped the extensive experiments and/or would like to use our expected analysis results for plotting, please replace the last command as:
75
+
```bash
76
+
$ cp analysis/expected_results/* plot/
77
+
```
78
+
79
+
As the final step, step into the [plot](./plot/) folder and generate figures (in pdf format) based on the analysis results. For example, running `python plot_openb_alloc.py` will produce `openb_alloc.pdf` in the current directory, which corresponds to Fig. 9(a) in the paper.
DATE="2023_0511"# Used as the folder name under experiments/ to hold all log results. To avoid collision of repeated experiments, may change date or append _v1, _v2, etc.
6
+
REMARK="Artifacts"
7
+
REPEAT=10# Number of repetitive experiments.
8
+
FILELIST= [
9
+
#: Main results in Fig. 7 and 9
12
10
"data/openb_pod_list_default",
13
-
#: Fig.
11
+
#: Fig. 14 Various proportion of non-GPU tasks
14
12
"data/openb_pod_list_cpu050",
15
13
"data/openb_pod_list_cpu100",
16
14
"data/openb_pod_list_cpu200",
17
15
"data/openb_pod_list_cpu250",
18
-
#:
16
+
#: Fig. 11 Various proportion of GPU-sharing tasks
19
17
"data/openb_pod_list_gpushare100",
20
18
"data/openb_pod_list_gpushare40",
21
19
"data/openb_pod_list_gpushare60",
22
20
"data/openb_pod_list_gpushare80",
23
-
#:
21
+
#: Fig. 13 Various proportion of tasks with GPU-type constraints
0 commit comments