refined README and removed unwanted scheduling policies.
This commit is contained in:
parent
dc279801b7
commit
1c4b6f0f01
16 changed files with 8 additions and 3896 deletions
81
README.md
81
README.md
|
@ -1,75 +1,10 @@
|
|||
Electron: A power budget manager
|
||||
======================================
|
||||
Elektron: A Pluggable Mesos framework with power-aware capabilities
|
||||
===================================================================
|
||||
|
||||
To Do:
|
||||
Elektron is a Mesos framework that behaves as a playground for developers to experiment with different scheduling policies to launch ad-hoc jobs.
|
||||
Elektron is designed as a lightweight, configurable framework, which can be used in conjunction with built-in power-capping policies to reduce the peak power and/or energy usage of co-scheduled tasks.
|
||||
|
||||
* Create metrics for each task launched [Time to schedule, run time, power used]
|
||||
* Have calibration phase?
|
||||
* Add ability to use constraints
|
||||
* Running average calculations https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average
|
||||
* Make parameters corresponding to each scheduler configurable (possible to have a config template for each scheduler?)
|
||||
* Adding type of scheduler to be used, to be picked from a config file, along with it's configurable parameters.
|
||||
* Write test code for each scheduler (This should be after the design change)
|
||||
Possible to setup the constants at runtime based on the environment?
|
||||
* Log fix for declining offer -- different reason when insufficient resources as compared to when there are no
|
||||
longer any tasks to schedule.
|
||||
* Have a centralised logFile that can be filtered by identifier. All electron logs should go into this file.
|
||||
* Make def.Task an interface for further modularization and flexibility.
|
||||
* Convert def#WattsToConsider(...) to be a receiver of def.Task and change the name of it to Watts(...).
|
||||
* **Critical** -- Add software requirements to the README.md (Mesos version, RAPL version, PCP version, Go version...)
|
||||
* **Critical** -- Retrofit to use Go 1.8 sorting techniques. Use def/taskUtils.go for reference.
|
||||
* Handle powerclass not configured on a node condition. As of now, an assumption is made that the powerclass is configured
|
||||
* Refine the sorting algorithm that sorts the clusters of tasks retrieved using the kmeans algorithm. This also involves the reduction in time complexity of the same.
|
||||
* Use the generic task sorter in def/taskUtils.go to sort the tasks based on CPU or RAM etc. Remove the existing sorters present in def/task.go.
|
||||
for all the nodes.
|
||||
|
||||
**Requires [Performance Co-Pilot](http://pcp.io/) tool pmdumptext to be installed on the
|
||||
machine on which electron is launched for logging to work and PCP collector agents installed
|
||||
on the Mesos Agents**
|
||||
|
||||
|
||||
How to run (Use the --help option to get information about other command-line options):
|
||||
|
||||
`./electron -workload <workload json>`
|
||||
|
||||
To run electron with Watts as Resource, run the following command,
|
||||
|
||||
`./electron -workload <workload json> -wattsAsAResource`
|
||||
|
||||
|
||||
Workload schema:
|
||||
|
||||
```
|
||||
[
|
||||
{
|
||||
"name": "minife",
|
||||
"cpu": 3.0,
|
||||
"ram": 4096,
|
||||
"watts": 63.141,
|
||||
"class_to_watts": {
|
||||
"A": 93.062,
|
||||
"B": 65.552,
|
||||
"C": 57.897,
|
||||
"D": 60.729
|
||||
},
|
||||
"image": "rdelvalle/minife:electron1",
|
||||
"cmd": "cd src && mpirun -np 3 miniFE.x -nx 100 -ny 100 -nz 100",
|
||||
"inst": 10
|
||||
},
|
||||
{
|
||||
"name": "dgemm",
|
||||
"cpu": 3.0,
|
||||
"ram": 32,
|
||||
"watts": 85.903,
|
||||
"class_to_watts": {
|
||||
"A": 114.789,
|
||||
"B": 89.133,
|
||||
"C": 82.672,
|
||||
"D": 81.944
|
||||
},
|
||||
"image": "rdelvalle/dgemm:electron1",
|
||||
"cmd": "/./mt-dgemm 1024",
|
||||
"inst": 10
|
||||
}
|
||||
]
|
||||
```
|
||||
#Features
|
||||
* Pluggable Scheduling policies
|
||||
* Pluggable Power-Capping strategies
|
||||
* Cluster resource monitoring
|
||||
|
|
Reference in a new issue