https://github.com/distributedsystemsgroup/cluster-scheduler-simulator
https://github.com/distributedsystemsgroup/cluster-scheduler-simulator
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/distributedsystemsgroup/cluster-scheduler-simulator
- Owner: DistributedSystemsGroup
- License: bsd-3-clause
- Created: 2016-05-23T16:49:13.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2017-06-22T11:45:05.000Z (almost 9 years ago)
- Last Synced: 2025-03-26T11:51:10.873Z (about 1 year ago)
- Language: Scala
- Size: 4.28 MB
- Stars: 2
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE_BERKELEY
Awesome Lists containing this project
README
# Cluster scheduler simulator overview
This simulator is forked from Cluster-Scheduler-Simulator by [Google](https://github.com/google/cluster-scheduler-simulator) and contains the features introduces by [Liang-Chi Hsieh](https://github.com/viirya) in his [fork](https://github.com/viirya/cluster-scheduler-simulator).
This version of the simulator has gone trough a lot of fixes, refactoring and improvements. The original document can be located [here](README_GOOGLE.md). We recommend to read it before using this version.
## Downloading, building, and running
To download this project you can clone this Git repository. Once cloned there are several ways to run it:
1. follow instructions in the same section [here](README_GOOGLE.md)
2. 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](docker).
## Simulators implemented
Currently the scheduler architectures supported are:
1. Monolithic by [Google](https://github.com/google/cluster-scheduler-simulator/blob/master/src/main/scala/MonolithicSimulation.scala)
2. Mesos by [Google](https://github.com/google/cluster-scheduler-simulator/blob/master/src/main/scala/MesosSimulation.scala)
3. Omega by [Google](https://github.com/google/cluster-scheduler-simulator/blob/master/src/main/scala/OmegaSimulation.scala)
4. Spark by [Liang-Chi Hsieh](https://github.com/viirya/cluster-scheduler-simulator/blob/spark_support/src/main/scala/SparkSimulation.scala)
5. Zoe by [Pace Francesco](https://github.com/Nosfe)
Be aware that the scheduler simulators original code might be different after the refactoring and improvements, but the logic is the same.
## Metrics
### Plotted
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 | ✔ | ✔ | ✔ | | ✔ |