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
Renan DelValle 6a406cad69 SIGINT is now captured. Linux/MacOS shutdown for pcpdumptext child
processes added to clean up after we finish running. Made all tasks
run on bridged network mode so that benchmarks that heavily utilize
network are protected from eachother. I.e: Tradebeans, tradesoap
2016-12-22 22:58:58 -05:00
pcp SIGINT is now captured. Linux/MacOS shutdown for pcpdumptext child 2016-12-22 22:58:58 -05:00
config basic configuration for pcp 2016-12-22 22:58:58 -05:00
metrics.go PCP code is now able to deal with receiving information asynchronously from pmdumptext 2016-12-22 22:58:58 -05:00
README.md More documentation 2016-12-22 22:58:58 -05:00
scheduler.go SIGINT is now captured. Linux/MacOS shutdown for pcpdumptext child 2016-12-22 22:58:58 -05:00
states.go Added Error state. Fixed bug with tasks returning error because 0.0 watts was requested as a resource. Changed name to be more readable by eliminating electron. PCP logs can now have a prefix. 2016-12-22 22:58:58 -05:00
task.go Added ability to tie benchmark to single node. Uses offer hostname for this, maybe a better soluition would be to look at offer attributes. Added shorthand for workloads flag -w 2016-12-22 22:58:58 -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:58:58 -05:00

Electron: A power budget manager

To Do:

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

How to run:

./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
   }
]