2016-10-31 21:38:40 -04:00
##Proactive Dynamic Capping
Perform Cluster wide dynamic capping.
Offer 2 methods:
2016-10-31 23:20:17 -04:00
2016-10-31 21:38:40 -04:00
1. First Come First Serve -- For each task that needs to be scheduled, in the order in which it arrives, compute the cluster wide cap.
2. Rank based cluster wide capping -- Sort a given set of tasks to be scheduled, in ascending order of requested watts, and then compute the cluster wide cap for each of the tasks in the ordered set.
2016-10-31 21:41:59 -04:00
main.go contains a set of test functions for the above algorithm.
2016-10-31 23:55:25 -04:00
***.go Files***
*main.go*
```
Contains functions that simulate FCFS and Ranked based scheduling.
```
*task.go*
```
Contains the blue print for a task.
A task contains the following information,
1. Image -- The image tag of the benchmark.
2. Name -- The name of the benchmark.
3. Host -- The host on which the task is to be scheduled.
4. CMD -- Comamnd to execute the benchmark.
5. CPU -- CPU shares to be allocated to the task.
6. RAM -- Amount of RAM to be given to the task.
7. Watts -- Requested amount of power, in watts.
8. Inst -- Number of instances.
```
*constants.go*
```
Contains constants that are used by all the subroutines.
Defines the following constants,
1. Hosts -- The possible hosts on which tasks can be scheduled.
2. Cap margin -- Margin of the requested power to be given to the task.
3. Power threshold -- Lower bound of power threshold for a task.
4. Total power -- Total power (including the static power) per node.
5. Window size -- size of the window of tasks.
```
*utils.go*
```
Contains functions that are used by all other Go routines.
```
###Please run the following commands to install dependencies and run the test code.
2016-10-31 21:43:18 -04:00
```
2016-10-31 21:41:59 -04:00
go build
go run main.go
2016-10-31 21:43:18 -04:00
```
2016-10-31 21:41:59 -04:00
2016-10-31 23:55:25 -04:00
###Note
2016-10-31 21:38:40 -04:00
The github.com folder contains a library that is required to compute the median of a given set of values.
2016-10-31 23:55:25 -04:00
###Things to do
1. Need to improve the test cases in main.go.
2. Need to add more test cases to main.go.
3. Add better exception handling to capper.go.