pradykaushik / felk

A Mesos framework that uses Netflix's Fenzo to make scheduling decisions.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Felk

A Mesos framework that uses Netflix's Fenzo to make scheduling decisions. Taken inspiration from Elektron, a pluggable Mesos framework.

Building the project

Run the following command to build an executable jar file.

./gradlew build

Note: The executable jar file would be stored in build/libs/.

Running Felk

The following are required to be able to successfully run Felk.

  • Workload configuration file
  • Hostname and port of the mesos master

A workload configuration file consists of the following elements,

A sample workload configuration file is shown below.

{
  "tasks": [
    {
      "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
    }
  ],
  "fitness_calc": "cpuBinPacker",
  "lease_offer_expiry_sec": 120,
  "disable_shortfall_eval": true,
  "lease_reject_action": "decline"
}

Run the following command to execute Felk with master location as abcd:5050 and config file as sample_workload.json.

java -jar felk-1.0-SNAPSHOT.jar --master abcd:5050 --config sample_workload.json

About

A Mesos framework that uses Netflix's Fenzo to make scheduling decisions.

License:Apache License 2.0


Languages

Language:Java 100.0%