This simulator is forked from Cluster-Scheduler-Simulator by Google and contains the features introduces by Liang-Chi Hsieh in his fork.
This version of the simulator has gone trough a lot of fixes, refactoring and improvements. The original document can be located here. We recommend to read it before using this version.
To download this project you can clone this Git repository. Once cloned there are several ways to run it:
-
follow instructions in the same section here
-
if you have a Swarm or Docker deployment at hand, it is possible to launch it with the following command:
$ bash bin/launch_on_container.sh
If you use option 2. make sure to update the variables inside the above script and to deploy the Docker Image here.
Currently the scheduler architectures supported are:
- Monolithic by Google
- Mesos by Google
- Omega by Google
- Spark by Liang-Chi Hsieh
- Zoe by Pace Francesco
Be aware that the scheduler simulators original code might be different after the refactoring and improvements, but the logic is the same.
Below there is a table that summarize the metric plotted for each scheduler simulator.
Monolithic | Mesos | Omega | Spark | Zoe | |
---|---|---|---|---|---|
Avg Cell CPU Utilization | ✔ | ✔ | ✔ | ✔ | |
Avg Cell RAM Utilization | ✔ | ✔ | ✔ | ✔ | |
Avg Cell CPU Locked | ✔ | ✔ | ✔ | ✔ | |
Avg Cell RAM Locked | ✔ | ✔ | ✔ | ✔ | |
Busy Time Fraction | ✔ | ✔ | ✔ | ✔ | |
Conflict Fraction | ✔ | ||||
Daily Busy Fraction Median | ✔ | ✔ | ✔ | ✔ | |
Daily Conflict Fraction Median | ✔ | ||||
Failed Task Allocation | ✔ | ✔ | ✔ | ✔ | |
Jobs Unscheduled | ✔ | ✔ | ✔ | ✔ | |
Jobs Scheduled | ✔ | ✔ | ✔ | ✔ | |
Jobs Fully Scheduled | ✔ | ✔ | ✔ | ✔ | |
Number Jobs Timed Out | ✔ | ✔ | ✔ | ✔ | |
Number Pending Jobs at the End | ✔ | ✔ | ✔ | ✔ | |
Retried Transactions | ✔ | ||||
Task Conflict Fraction | ✔ | ||||
Wait Time Before First Task | ✔ | ✔ | ✔ | ✔ | |
Wait Time Before All Tasks | ✔ | ✔ | ✔ | ✔ | |
Avg Job Execution Time | ✔ | ✔ | ✔ | ✔ | |
Avg Job Completion Time | ✔ | ✔ | ✔ | ✔ |