Elektron is a lightweight, power-aware, pluggable Mesos framework that behaves as a playground to experiment with different scheduling policies to schedule ad-hoc jobs in docker containers.
This repository has been archived on 2024-04-10. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
Find a file
2016-12-22 22:59:03 -05:00
constants Updated comments 2016-12-22 22:59:03 -05:00
def Prevented the use of reflect and instead compared the TaskIDs of the tasks. 2016-12-22 22:59:03 -05:00
pcp Added another log message to log the name of the file to which the pcplogs are getting written to. 2016-12-22 22:59:02 -05:00
rapl Sycnrhonized operations that change the value of the cluster wide cap. Added cleverRecap(...) that determines the recap value of the cluster at a much finer level, taking into account the average load on each node in the cluster. Bug fix in cap.go -- closed the session once capping had been done. This prevented from running out of file descriptors. 2016-12-22 22:59:02 -05:00
schedulers Removed TODO comment in ResourceOffers(...), that wasn't necessary anymore. 2016-12-22 22:59:03 -05:00
utilities fixed naming convensions to be camel cased. Reformatted the code. 2016-12-22 22:59:03 -05:00
config basic configuration for pcp 2016-12-22 22:59:01 -05:00
README.md Added TODO to fix the -p option. 2016-12-22 22:59:03 -05:00
scheduler.go changed extrema to non-extrema. This was done so that proactive cluster wide capping scheme doesn't conflict with the extrema capping scheme. 2016-12-22 22:59:02 -05:00
workload_1.json Electron now launches a series of benchmarks and then shuts down when everything has been sucessfully scheduled 2016-12-22 22:59:01 -05:00

Electron: A power budget manager

To Do:

  • 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?)
  • Fix the -p option.

Requires Performance-Copilot tool pmdumptext to be installed on the machine on which electron is launched for logging to work

How to run (Use the --help option to get information about other command-line options):

./electron -workload <workload.json> -ignoreWatts <true or false>

Workload schema:

[
   {
      "name": "minife",
      "cpu": 3.0,
      "ram": 4096,
      "watts": 50,
      "image": "gouravr/minife:v5",
      "cmd": "cd src && mpirun -np 1 miniFE.x -nx 100 -ny 100 -nz 100",
      "inst": 9
   },
   {
      "name": "dgemm",
      "cpu": 3.0,
      "ram": 4096,
      "watts": 50,
      "image": "gouravr/dgemm:v2",
      "cmd": "/./mt-dgemm 1024",
      "inst": 9
   }
]