From 971f6833c3afa104273f2e073cef6f8315e74a66 Mon Sep 17 00:00:00 2001 From: Pradyumna Kaushik Date: Tue, 26 Sep 2017 13:43:23 -0400 Subject: [PATCH] modified schedulers/README.md to now use Elektron instead of Electron. Also, changed the content to just display the contained scheduling policies with an explaination for each of them. --- schedulers/README.md | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/schedulers/README.md b/schedulers/README.md index 476e114..252c33e 100644 --- a/schedulers/README.md +++ b/schedulers/README.md @@ -1,24 +1,24 @@ -Electron: Scheduling Algorithms -================================ +Elektron: Pluggable Scheduling Policies +======================================= -To Do: +##__Scheduling Policies__ - * 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. - -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 + * **First Fit** - *Find the first task in the job queue whose + resource constraints are satisfied by the resources available in + a resource offer. If a match is made between an offer and a task, + the offer is consumed in order to schedule the matching task. Else, + move onto a new mesos resource offer and repeat the process.* + * **Bin-packing** - *For each resource offer received, tasks are matched + from the priority queue keyed by the Watts resource requirement. If a task's + resource requirements are not satisfied by the remaining resources in the + offer, the next task in the queue is evaluated for fitness. This way, tasks + are packed into a resource offer.* + * **Max-Min** - *Pack a resource offer by picking a mixed set of tasks + from the job queue (used as a double-ended queue) that is sorted in + non-decreasing order of tasks' Watts requirement. Max-Min alternates + between picking tasks from the front and back of the queue.* + * **Max-GreedyMins** - *Similar to Max-Min, a double-ended queue, + sorted in non-decreasing order of tasks' Watts requirement, to store + the tasks. Max-GreedyMins aims to pack tasks into an offer by picking + one task from the end of the queue, and as many from the beginning, + until no more task can fit the offer.*