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-31 16:07:44 -05:00
..
base.go Minor comments and style changes 2017-01-06 18:53:03 -05:00
binpackedpistoncapping.go retrofitted all schedulers to call OfferAgg(...) and OffersSorter from utilities/offerUtils and also to use defaultFilter and longFilter from utilities/mesosUtils 2017-01-28 19:41:05 -05:00
binpacksortedwatts.go retrofitted all schedulers to call OfferAgg(...) and OffersSorter from utilities/offerUtils and also to use defaultFilter and longFilter from utilities/mesosUtils 2017-01-28 19:41:05 -05:00
binPackSortedWattsSortedOffers.go retrofitted all schedulers to call OfferAgg(...) and OffersSorter from utilities/offerUtils and also to use defaultFilter and longFilter from utilities/mesosUtils 2017-01-28 19:41:05 -05:00
bottomHeavy.go retrofitted all schedulers to call OfferAgg(...) and OffersSorter from utilities/offerUtils and also to use defaultFilter and longFilter from utilities/mesosUtils 2017-01-28 19:41:05 -05:00
bpMaxMin.go retrofitted all schedulers to call OfferAgg(...) and OffersSorter from utilities/offerUtils and also to use defaultFilter and longFilter from utilities/mesosUtils 2017-01-28 19:41:05 -05:00
bpMaxMinPistonCapping.go retrofitted all schedulers to call OfferAgg(...) and OffersSorter from utilities/offerUtils and also to use defaultFilter and longFilter from utilities/mesosUtils 2017-01-28 19:41:05 -05:00
bpMaxMinProacCC.go retrofitted to use clusterwidecapper from powerCapping/ instead of from pcp/ as clusterwidecapper was moved from pcp/ to powerCapping/ 2017-01-28 21:56:23 -05:00
bpswClassMapWatts.go retrofitted to use offerUtils.PowerClass(...) instead of inlining the code in every scheduler. Reduced redundant code. Changed name of newTaskClass in newTask(...) to powerClass. 2017-01-31 16:07:44 -05:00
bpswClassMapWattsPistonCapping.go retrofitted to use offerUtils.PowerClass(...) instead of inlining the code in every scheduler. Reduced redundant code. Changed name of newTaskClass in newTask(...) to powerClass. 2017-01-31 16:07:44 -05:00
bpswClassMapWattsProacCC.go retrofitted to use offerUtils.PowerClass(...) instead of inlining the code in every scheduler. Reduced redundant code. Changed name of newTaskClass in newTask(...) to powerClass. 2017-01-31 16:07:44 -05:00
firstfit.go retrofitted all schedulers to call OfferAgg(...) and OffersSorter from utilities/offerUtils and also to use defaultFilter and longFilter from utilities/mesosUtils 2017-01-28 19:41:05 -05:00
firstfitSortedOffers.go retrofitted all schedulers to call OfferAgg(...) and OffersSorter from utilities/offerUtils and also to use defaultFilter and longFilter from utilities/mesosUtils 2017-01-28 19:41:05 -05:00
firstfitsortedwatts.go retrofitted all schedulers to call OfferAgg(...) and OffersSorter from utilities/offerUtils and also to use defaultFilter and longFilter from utilities/mesosUtils 2017-01-28 19:41:05 -05:00
firstfitSortedWattsClassMapWatts.go retrofitted to use offerUtils.PowerClass(...) instead of inlining the code in every scheduler. Reduced redundant code. Changed name of newTaskClass in newTask(...) to powerClass. 2017-01-31 16:07:44 -05:00
firstfitSortedWattsClassMapWattsProacCC.go retrofitted to use offerUtils.PowerClass(...) instead of inlining the code in every scheduler. Reduced redundant code. Changed name of newTaskClass in newTask(...) to powerClass. 2017-01-31 16:07:44 -05:00
firstfitSortedWattsSortedOffers.go retrofitted all schedulers to call OfferAgg(...) and OffersSorter from utilities/offerUtils and also to use defaultFilter and longFilter from utilities/mesosUtils 2017-01-28 19:41:05 -05:00
firstfitwattsonly.go retrofitted all schedulers to call OfferAgg(...) and OffersSorter from utilities/offerUtils and also to use defaultFilter and longFilter from utilities/mesosUtils 2017-01-28 19:41:05 -05:00
helpers.go Added function to determine the watts value to consider for each task, depending on weather -classMapWatts was enabled and also weather the workload contained a map of power-class to the watts requirement. 2017-01-28 21:09:43 -05:00
proactiveclusterwidecappingfcfs.go retrofitted to use clusterwidecapper from powerCapping/ instead of from pcp/ as clusterwidecapper was moved from pcp/ to powerCapping/ 2017-01-28 21:56:23 -05:00
proactiveclusterwidecappingranked.go retrofitted to use clusterwidecapper from powerCapping/ instead of from pcp/ as clusterwidecapper was moved from pcp/ to powerCapping/ 2017-01-28 21:56:23 -05:00
README.md Added TODO to retrofit schedulers to run either with classMapWatts enabled or disabled. 2017-01-28 21:31:05 -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 retrofitted all schedulers to call OfferAgg(...) and OffersSorter from utilities/offerUtils and also to use defaultFilter and longFilter from utilities/mesosUtils 2017-01-28 19:41:05 -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.
  • Retrofit schedulers to be able to run either using ClassMapWatts enabled or disabled.

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.