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.
elektron/schedulers
2017-08-22 13:00:40 -04:00
..
base.go resolved merge conflict with master. Formatted file. 2017-02-11 14:27:33 -05:00
binpackedpistoncapping.go Retrofitted all the schedulers to call UpdateEnvironment(..) function instead of the old named function i.e AddHostIfNew(..) 2017-03-25 18:06:39 -04:00
binpacksortedwatts.go Retrofitted all the schedulers to call UpdateEnvironment(..) function instead of the old named function i.e AddHostIfNew(..) 2017-03-25 18:06:39 -04:00
binPackSortedWattsSortedOffers.go Retrofitted all the schedulers to call UpdateEnvironment(..) function instead of the old named function i.e AddHostIfNew(..) 2017-03-25 18:06:39 -04:00
bottomHeavy.go Consolidated the ClassifyTasks(...) functions from topHeavy and bottomHeavy and added the function to def/taskUtils.go. Added TODOs for refining the means by which the kmeans classified clusters were sorted. 2017-08-22 13:00:40 -04:00
bpswMaxMin.go Retrofitted all the schedulers to call UpdateEnvironment(..) function instead of the old named function i.e AddHostIfNew(..) 2017-03-25 18:06:39 -04:00
bpswMaxMinPistonCapping.go Retrofitted all the schedulers to call UpdateEnvironment(..) function instead of the old named function i.e AddHostIfNew(..) 2017-03-25 18:06:39 -04:00
bpswMaxMinProacCC.go Retrofitted all the schedulers to call UpdateEnvironment(..) function instead of the old named function i.e AddHostIfNew(..) 2017-03-25 18:06:39 -04:00
firstfit.go Retrofitted all the schedulers to call UpdateEnvironment(..) function instead of the old named function i.e AddHostIfNew(..) 2017-03-25 18:06:39 -04:00
firstfitProacCC.go Retrofitted all the schedulers to call UpdateEnvironment(..) function instead of the old named function i.e AddHostIfNew(..) 2017-03-25 18:06:39 -04:00
firstfitSortedOffers.go Retrofitted all the schedulers to call UpdateEnvironment(..) function instead of the old named function i.e AddHostIfNew(..) 2017-03-25 18:06:39 -04:00
firstfitsortedwatts.go Retrofitted all the schedulers to call UpdateEnvironment(..) function instead of the old named function i.e AddHostIfNew(..) 2017-03-25 18:06:39 -04:00
firstfitSortedWattsProacCC.go Retrofitted all the schedulers to call UpdateEnvironment(..) function instead of the old named function i.e AddHostIfNew(..) 2017-03-25 18:06:39 -04:00
firstfitSortedWattsSortedOffers.go Retrofitted all the schedulers to call UpdateEnvironment(..) function instead of the old named function i.e AddHostIfNew(..) 2017-03-25 18:06:39 -04:00
firstfitwattsonly.go Retrofitted all the schedulers to call UpdateEnvironment(..) function instead of the old named function i.e AddHostIfNew(..) 2017-03-25 18:06:39 -04:00
helpers.go Retrofitted all the schedulers to now call the offerutils.AddHostIfNew(..) utility function which will dynamically populate the constants.Hosts and constants.PowerClasses. 2017-03-24 16:28:49 -04:00
README.md Consolidated the ClassifyTasks(...) functions from topHeavy and bottomHeavy and added the function to def/taskUtils.go. Added TODOs for refining the means by which the kmeans classified clusters were sorted. 2017-08-22 13:00:40 -04:00
states.go Moved schedulers from the main programs to schedulers package. Can now choose different scheduelrs to use. Work on code sharing between schedulers remains to be done. 2016-12-22 22:59:02 -05:00
topHeavy.go Consolidated the ClassifyTasks(...) functions from topHeavy and bottomHeavy and added the function to def/taskUtils.go. Added TODOs for refining the means by which the kmeans classified clusters were sorted. 2017-08-22 13:00:40 -04:00

Electron: Scheduling Algorithms

To Do:

  • Design changes -- Possible to have one scheduler with different scheduling schemes?
  • Fix the race condition on 'tasksRunning' in proactiveclusterwidecappingfcfs.go and proactiveclusterwidecappingranked.go
  • Critical: Separate the capping strategies from the scheduling algorithms and make it possible to use any capping strategy with any scheduler.
  • Create a package that would contain routines to perform various logging and move helpers.coLocated(...) into that.
  • 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.

Scheduling Algorithms:

  • First Fit
  • First Fit with sorted watts
  • Bin-packing with sorted watts
  • BinPacked-MaxMin -- Packing one large task with a bunch of small tasks.
  • Top Heavy -- Hybrid scheduler that packs small tasks (less power intensive) using Bin-packing and spreads large tasks (power intensive) using First Fit.
  • Bottom Heavy -- Hybrid scheduler that packs large tasks (power intensive) using Bin-packing and spreads small tasks (less power intensive) using First Fit.

Capping Strategies

  • Extrema Dynamic Capping
  • Proactive Cluster-wide Capping
  • Piston Capping