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-01-28 19:36:13 -05:00
..
base.go Minor comments and style changes 2017-01-06 18:53:03 -05:00
binpackedpistoncapping.go retrofitted schedulers to use base.go and to log the scheduling trace. Changed the name of piston capper to binpackedpistoncapping and also changed the variable names inside binpackedpistoncapping.go to indicate the name of the scheduler. 2017-01-14 19:44:50 -05:00
binpacksortedwatts.go formatted the files 2017-01-14 20:04:37 -05:00
binPackSortedWattsSortedOffers.go FirstFit and BinPacking with SortedOffers based on CPU. 2017-01-28 17:52:24 -05:00
bottomHeavy.go hybrid scheduler(TOP HEAVY) -- Pack Small tasks (less power intensive) using BinPacking and Spread large tasks (power intensive) using FirstFit. BOTTOM HEAVY -- Pack Large tasks (power intensive) using BinPacking and spread the small tasks (less power intensive) using FirstFit. 2017-01-28 18:06:59 -05:00
bpMaxMin.go formatted the files 2017-01-14 20:04:37 -05:00
bpMaxMinPistonCapping.go Bug fix to start capping when the first task fits an offer. 2017-01-08 18:59:51 -08:00
bpMaxMinProacCC.go formatted the files 2017-01-14 20:04:37 -05:00
bpswClassMapWatts.go retrofitted schedulers to use base.go and to log the scheduling trace. Changed the name of piston capper to binpackedpistoncapping and also changed the variable names inside binpackedpistoncapping.go to indicate the name of the scheduler. 2017-01-14 19:44:50 -05:00
bpswClassMapWattsPistonCapping.go retrofitted schedulers to use base.go and to log the scheduling trace. Changed the name of piston capper to binpackedpistoncapping and also changed the variable names inside binpackedpistoncapping.go to indicate the name of the scheduler. 2017-01-14 19:44:50 -05:00
bpswClassMapWattsProacCC.go Removed unnecessary whitespace. 2017-01-28 17:46:29 -05:00
firstfit.go formatted the files 2017-01-14 20:04:37 -05:00
firstfitSortedOffers.go FirstFit and BinPacking with SortedOffers based on CPU. 2017-01-28 17:52:24 -05:00
firstfitsortedwatts.go formatted the files 2017-01-14 20:04:37 -05:00
firstfitSortedWattsClassMapWatts.go retrofitted schedulers to use base.go and to log the scheduling trace. Changed the name of piston capper to binpackedpistoncapping and also changed the variable names inside binpackedpistoncapping.go to indicate the name of the scheduler. 2017-01-14 19:44:50 -05:00
firstfitSortedWattsClassMapWattsProacCC.go retrofitted schedulers to use base.go and to log the scheduling trace. Changed the name of piston capper to binpackedpistoncapping and also changed the variable names inside binpackedpistoncapping.go to indicate the name of the scheduler. 2017-01-14 19:44:50 -05:00
firstfitSortedWattsSortedOffers.go FirstFit and BinPacking with SortedOffers based on CPU. 2017-01-28 17:52:24 -05:00
firstfitwattsonly.go formatted the files 2017-01-14 20:04:37 -05:00
helpers.go moved longFilter and defaultFilter to utilities/mesosUtils and OfferAgg and OffersSorter to utilities/offerUtils 2017-01-28 19:36:13 -05:00
proactiveclusterwidecappingfcfs.go formatted the files 2017-01-14 20:04:37 -05:00
proactiveclusterwidecappingranked.go formatted the files 2017-01-14 20:04:37 -05:00
README.md Added classMapWatts, topHeavy and bottomHeavy schedulers to the list of schedulers. Also, added TODO for creating a package to hold all the source code to perform logging. 2017-01-28 19:34:28 -05: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 hybrid scheduler(TOP HEAVY) -- Pack Small tasks (less power intensive) using BinPacking and Spread large tasks (power intensive) using FirstFit. BOTTOM HEAVY -- Pack Large tasks (power intensive) using BinPacking and spread the small tasks (less power intensive) using FirstFit. 2017-01-28 18:06:59 -05: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
  • Separate the capping strategies from the scheduling algorithms and make it possible to use any capping strategy with any scheduler.
  • Make newTask(...) variadic where the newTaskClass argument can either be given or not. If not give, then pick task.Watts as the watts attribute, else pick task.ClassToWatts[newTaskClass].
  • Retrofit pcp/proactiveclusterwidecappers.go to include the power capping go routines and to cap only when necessary.
  • Create a package that would contain routines to perform various logging and move helpers.coLocated(...) into that.

Scheduling Algorithms:

  • First Fit
  • First Fit with sorted watts
  • Bin-packing with sorted watts
  • FCFS Proactive Cluster-wide Capping
  • Ranked Proactive Cluster-wide Capping
  • Piston Capping -- Works when scheduler is run with WAR
  • ClassMapWatts -- Bin-packing and First Fit that now use Watts per power class.
  • 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.