Commit graph

497 commits

Author SHA1 Message Date
Pradyumna Kaushik
e3daff5046 Removed unused json attribute varCpuShare. 2018-10-03 21:35:20 -04:00
Pradyumna Kaushik
59e84f9a9f Removed commands to plug-in scheduling policies.
The documentation on the different scheduling policies should
technically not include the commands to be used to plug them in.
The commands would need to be present in a separate section that
talks about different ways to run Elektron.
2018-10-03 21:32:53 -04:00
Pradyumna Kaushik
888e2b7acc Fix title for pluggable power-capping strategies.
Power-capping strategies are not pluggable yet and hence, just
using "Power-Capping strategies" as the section title.
2018-10-03 21:30:14 -04:00
Pradyumna Kaushik
79bca21cf0 Documentation for Scheduling Policy Switching. 2018-10-03 21:29:52 -04:00
Renan DelValle
9554bf2666
Runing goimports on project as well as fixing README so that headers render correctly. 2018-09-30 18:23:38 -07:00
Renan DelValle
b341c0a0e4
Adding dep files and dependencies. 2018-09-30 18:02:42 -07:00
Renan DelValle
45f9efa578
Changing imports from bitbucket to gitlab. 2018-09-30 17:56:14 -07:00
Pradyumna Kaushik
cdbf60ea0d linked Mesos. 2018-09-28 01:44:46 -04:00
Pradyumna Kaushik
8f8772a66e Try 2 of image include. Outline for detailed doc. 2018-09-28 01:41:56 -04:00
Pradyumna Kaushik
ffe0734c12 resolved merge conflict. 2018-09-28 01:22:13 -04:00
Pradyumna Kaushik
056720e9c9 fixed image include markdown. 2018-09-28 01:20:56 -04:00
Pradyumna Kaushik
82b1ff2d96 fixed image include markdown. 2018-09-28 01:17:58 -04:00
Pradyumna Kaushik
5019ea34a4 Added architecture diagram. Refined description. 2018-09-28 01:16:08 -04:00
Pradyumna Kaushik
ab94d5f66a Commands to plug-in schedPolicies into Elektron. 2018-09-25 14:07:40 -04:00
Pradyumna Kaushik
8a78b58bc0 Enhanced description of Elektron.
Added the description to Elektron that is present in the research
paper.
2018-09-25 14:06:49 -04:00
Pradyumna Kaushik
93d8991947 Software reqs & instructions to build and run. 2018-09-23 19:34:45 -04:00
Pradyumna Kaushik
1437979223 fixed import. 2018-09-23 19:28:06 -04:00
Pradyumna Kaushik
66c19b53c9 Merged in differentSwitchingMechanisms (pull request #14)
DifferentSwitchingMechanisms

Approved-by: Akash Kothawale <akothaw1@binghamton.edu>
2018-09-23 19:21:52 -04:00
Pradyumna Kaushik
1bee742588 fixed import. 2018-09-23 19:19:16 -04:00
Pradyumna Kaushik
8b27f5547d Merged in fixSchedWindowSize (pull request #13)
FixSchedWindowSize

Approved-by: Akash Kothawale <akothaw1@binghamton.edu>
2018-09-23 19:18:50 -04:00
Pradyumna Kaushik
f1c6adb05b Merged in measureClassificationOverhead (pull request #12)
MeasureClassificationOverhead

Approved-by: Akash Kothawale <akothaw1@binghamton.edu>
2018-09-23 19:18:30 -04:00
Pradyumna Kaushik
ae81125110 Merged in mapTaskDistrToSchedPolWhenSwitching (pull request #11)
MapTaskDistrToSchedPolWhenSwitching

Approved-by: Akash Kothawale <akothaw1@binghamton.edu>
2018-09-23 19:18:07 -04:00
Pradyumna Kaushik
0f305ab796 Merged in updateRunningOnTaskRunningStatus (pull request #9)
critical: baseScheduler#Running wasn't getting update properly.

Approved-by: Akash Kothawale <akothaw1@binghamton.edu>
2018-09-23 19:12:50 -04:00
Pradyumna Kaushik
b877d31cb8 Merged in schedPolSwitchConfigFile (pull request #8)
SchedPolSwitchConfigFile

Approved-by: Akash Kothawale <akothaw1@binghamton.edu>
2018-09-23 19:10:23 -04:00
Pradyumna Kaushik
b569bd3060 Merged in schedPolSwitchLogging-revert (pull request #7)
adding back the call to base#LogSchedPolicySwitch(...). Had removed this addition by mistake when resolving merge conflicts.

Approved-by: Akash Kothawale <akothaw1@binghamton.edu>
Approved-by: Pradyumna Kaushik <pkaushi1@binghamton.edu>
2018-09-23 19:07:44 -04:00
Pradyumna Kaushik
85383da550 Merged in scheduleOnlySchedWindowTasks (pull request #6)
ScheduleOnlySchedWindowTasks

Approved-by: Akash Kothawale <akothaw1@binghamton.edu>
2018-09-23 19:07:22 -04:00
Pradyumna Kaushik
3d51efc679 Merge branch 'scheduleOnlySchedWindowTasks' of https://bitbucket.org/sunybingcloud/electron-sps into scheduleOnlySchedWindowTasks 2018-09-23 19:01:49 -04:00
Pradyumna Kaushik
25bf363d2c Merged in tasksToScheduleWindow (pull request #5)
TasksToScheduleWindow

Approved-by: Akash Kothawale <akothaw1@binghamton.edu>
2018-09-23 19:01:17 -04:00
Akash Kothawale
b1bd21f730 Merged in akash/LogPolicySwitch (pull request #4)
Scheduling Policy Switch Logger

Approved-by: Pradyumna Kaushik <pkaushi1@binghamton.edu>
2018-09-23 18:57:24 -04:00
Pradyumna Kaushik
3fa4a45ca7 added .gitignore. 2018-09-23 18:39:11 -04:00
Pradyumna Kaushik
6c77aa777e Merged in resourceUsageTracking (pull request #2)
ResourceUsageTracking

Approved-by: Akash Kothawale <akothaw1@binghamton.edu>
Approved-by: Pradyumna Kaushik <pkaushi1@binghamton.edu>
2018-09-23 18:36:07 -04:00
Pradyumna Kaushik
ec18b617da ignored error returned from LaunchTasks. Technically, this error shouldn't occur. Retrofitted scheduling policies to not receive an error when calling LaunchTasks(...) 2018-09-23 18:30:12 -04:00
Pradyumna Kaushik
f041e6668b added a baseSchedPolicyState struct in schedulers/schedPolicy.go. This struct would store information common to scheduling policies. Added member called numTasksScheduled to baseSchedPolicyState that would keep count of the number of tasks that the current scheduling policy has scheduled. Moved the logic to switch (currently performing a random switch) to baseSchedPolicyState#switchIfNecessary(...) and retrofitted all scheduling policies to call this instead of inlining the code in each of them. 2018-09-23 18:28:11 -04:00
Pradyumna Kaushik
5a28f8539a formatted code. 2018-09-23 18:23:37 -04:00
Akash Kothawale
acf9332a50 Comments: Explain what Variance is used for. 2018-09-23 18:16:27 -04:00
Akash Kothawale
2d3158d99a pcp: Remove unused functions 2018-09-23 18:16:17 -04:00
Akash Kothawale
c52bfb08c5 Handle case: host -> slaveID may not be available 2018-09-23 18:16:06 -04:00
Akash Kothawale
3d5bb772fb Fix: Mutex lock handling issues with task running 2018-09-23 18:15:52 -04:00
Akash Kothawale
9c09321d81 Fix incorrect degColLog file location 2018-09-23 18:14:48 -04:00
Akash Kothawale
39d1cf980c Use existing Mean and Variance functions
Available in github.com/montanaflynn/stats
2018-09-23 18:13:47 -04:00
Akash Kothawale
46be28ef8d pcp: CPU/MEM utilization & task share variance per node 2018-09-23 18:13:28 -04:00
Akash Kothawale
abadb9a328 degCol: Logger for storing degree of colocation
degCol: logger
2018-09-23 18:10:59 -04:00
Pradyumna Kaushik
b58ffdbdd6 formatted code 2018-09-23 18:10:31 -04:00
Pradyumna Kaushik
435c4ca1bc fixed bug in schedWindow resizing strategy, where earlier it was stopping after checking if the first task in the queue can be scheduled in the next offer cycle. Changed baseScheduler to store the schedWindowResizingStrategy instead of the criteria. Retrofitted the scheduling policies to use the scheduling window resizing strategy directly from baseSchedRef. 2018-09-23 18:10:02 -04:00
Pradyumna Kaushik
3ebd7b0c7e added utility to compute the scheduling window. Right now there's only criteria on which this is determined -- fillNextOfferCycle. So, the schedWindow is the max number of tasks, that aren't yet scheduled, whose aggregate resource requirement is as close as possible to the resource available in the next round of resource offers. To be able to make the most use of the next offer cycle, one would need to perform a non-polynomial search of the TaskQueue and as this is computationally expensive, a linear search is performed on the TaskQueue. Retrofitted scheduling policies to also call utilities.schedUtils#schedWindowResizingStrategy#Apply before switching to a new scheduling policy. 2018-09-23 18:03:14 -04:00
Akash Kothawale
6f0f3788b9 sched: Make baseScheduler publicly accessible 2018-09-23 17:55:12 -04:00
Pradyumna Kaushik
9599588fb5 formatted code. 2018-09-23 17:49:08 -04:00
Pradyumna Kaushik
c31bf8db01 BUG Fix1: taskID creation in taskUtils#initTaskResourceRequirements. BUG Fix2: Converted value in utilities/trackResourceUsage#TrackResourceUsage#perHostResourceAvailability to be a pointer to ResourceCount. 2018-09-23 17:46:38 -04:00
Pradyumna Kaushik
657dc8df93 Track resource usage across the cluster. Created utility in utilities/ to track the total and the unused resources for each host in the cluster. Added utility to def/taskUtils.go to retrieve the resource requirement for a given taskID. Decoupled the code, to launch a list of tasks on a set of offerIDs, to schedulers/helpers.go and updated all the scheduling policies to call this function instead of directly calling mesos.SchedulerDriver#LaunchTasks. The resource availability of the cluster is updated at 2 stages -- 1. When the tasks are about to be launched (in schedulers/helpers.go#LaunchTasks), the scheduling policy switching logic will be able to adhere to the update in the resource availability due to the JUST launched tasks and 2. when a terminal status update is received for a task (in schedulers/base.go#statusUpdate). 2018-09-23 17:44:36 -04:00
Pradyumna Kaushik
6cd61ed18b comment cleanup. 2018-09-23 17:33:34 -04:00