Renan DelValle
291f4f3979
Adding GPLv3 Licensing.
2018-10-06 20:03:14 -07:00
Pradyumna Kaushik
bcc2b4e4cc
Removed Degree of Collocation logger.
2018-10-05 14:11:49 -04:00
Pradyumna Kaushik
6f97c36411
Passed scheduler to extrema and prog-extrema.
2018-10-05 00:41:43 -04:00
Pradyumna Kaushik
5a6a43937c
Hi/Lo Thresholds only for extrema and prog-extrema.
...
Added condition to mandate high and low thresholds only for extrema
and progressive extrema power capping strategies.
2018-10-04 20:10:46 -04:00
Pradyumna Kaushik
4637355721
Reorganized code.
...
Building the scheduler in phases. To be able to do this, increased
visibility of schedulers/helpers.go#schedulerOptions.
Refactored dependent code.
2018-10-04 19:27:13 -04:00
Pradyumna Kaushik
c9d4e66236
Powercap policy and PCP config from commandline.
...
Added command line arguments corresponding to powercapping policy
and pcp config file path.
2018-10-04 19:21:45 -04:00
Pradyumna Kaushik
1e2fae9f80
Removed underscore for second return.
2018-10-04 14:11:38 -04:00
Pradyumna Kaushik
1e9828c35b
Provide pcp config file from commandline.
...
Taking pcp config file name (or path) from commandline.
In scheduler.go, also checking to see if provided pcp config file
exists. If not, then exitting.
2018-10-04 13:57:35 -04:00
Pradyumna Kaushik
8e87bcb439
Fixed import alias prefix.
...
Changed the prefix to import aliases to be 'elek' instead of 'elec'.
2018-10-04 13:45:31 -04:00
Pradyumna Kaushik
b06bdeba59
Used println instead of printf if no args.
2018-10-04 13:40:04 -04:00
Pradyumna Kaushik
49b58fd2f9
Plug-in power-capping policy from commandline.
2018-10-04 13:38:55 -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
45f9efa578
Changing imports from bitbucket to gitlab.
2018-09-30 17:56:14 -07: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
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
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
b877d31cb8
Merged in schedPolSwitchConfigFile (pull request #8 )
...
SchedPolSwitchConfigFile
Approved-by: Akash Kothawale <akothaw1@binghamton.edu>
2018-09-23 19:10:23 -04:00
Akash Kothawale
46be28ef8d
pcp: CPU/MEM utilization & task share variance per node
2018-09-23 18:13:28 -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
3b80af6d8f
Fix: mesos-go imports
2018-09-23 17:31:03 -04:00
Pradyumna Kaushik
065705d480
Merged in experimentation/schedPolicySwitcher (pull request #1 )
...
Experimentation/schedPolicySwitcher
1. Initial commit for consolidated loggers using observer pattern.
2. class factory for schedulers.
3. Using the scheduling policy class factory in schedulers/store.go and the scheduler builder helpers in schedulers/helpers.go, feature to be able to be able to plug a scheduling policy of your choice from the command line (right now only first-fit and bin-packing are possible. Will be updating the class factory to include other scheduling policies as well.
4. Removed TODO for using generic task sorters. Modified TODO for a config file input to run electron.
5. Added other schedulers to the factory
6. Partially retrofitted the other scheduling policies to use the logging library.
7. Retrofitted extrema and progressive to use the consolidated logging library. Fixed parameter issue with s.base.Disconnected(). Formatted project
8. Move statusUpdate(...) into base.go to remove redundant code.
9. Converted the baseScheduler into a state machine where the state is a scheduling policy that defines an approach to consume resource offers.
10. Added another command line argument to be used to enable switching of scheduling policies. Retrofitted scheduling policies to switch only if the particular feature has been enabled.
changed argument to coLocated(...) to take base type rather than ElectronScheduler type. Also, prepended the prefix to the directory of the logs so that it would be easier to determine what the files in a directory correspond to without viewing the contents of the directory.
Defined methods in ElectronScheduler. Each of these methods corresponds to a type of log that an ElectronScheduler would make. Each of these methods would need to be implemented by the scheduling policy.
Electron has only one scheduler that implements the mesos scheduler interface. All the scheduling policies are just different implementations of ways to consume mesos resource offers. Retrofitted scheduling policies to now embed SchedPolicyState instead of baseScheduler.
Approved-by: Pradyumna Kaushik <pkaushi1@binghamton.edu>
2018-09-23 17:19:28 -04:00
Pradyumna Kaushik
1b9442bf50
Fixed missing default value issue in Mesos master command line argument.
2017-10-03 20:10:44 -04:00
Pradyumna Kaushik
3d07efe15d
removed default value for -master commandline argument.
2017-10-03 01:38:34 -04:00
Pradyumna Kaushik
b807625b78
Fixed the comments to be capitalized at the start and also terminate with a period.
2017-09-28 15:36:47 -04:00
Pradyumna Kaushik
04f24beac5
scheduling policies pluggable from commandline
2017-09-26 13:17:47 -04:00
Pradyumna Kaushik
3fa4f3d0e6
changed commandline argument descriptions. Changed the names of the scheduling policies and the structs.
2017-09-26 01:05:18 -04:00
Pradyumna Kaushik
9897c983fe
removed proactive-clusterwide power-capper. Retrofitted package names to use elektron and not electron
2017-09-26 00:18:35 -04:00
Pradyumna Kaushik
41ef269c62
fixed indentation
2017-08-22 12:56:36 -04:00
Abhishek Jain
9546529f80
Corrected a spelling mistake in a print statement
2017-03-24 17:13:21 -04:00
Pradyumna Kaushik
531c1a120b
Fixed messages for commandline arguments.
2017-02-20 23:49:27 -05:00
Pradyumna Kaushik
726c0555ed
Fixed corner cases in progressive extrema -- When a node is capped and the new cap value is above a threshold then that node can be capped or uncapped in the next cycle. If the new cap value is equal to the threshold then the node cannot be capped further and can only be uncapped. When the node is uncapped and the newUncapValue is below 100 then the node can be capped or uncapped in the next cycle. If the newUncapValue is 100 then the node can only be capped.
2017-02-20 20:55:06 -05:00
Pradyumna Kaushik
57512ac2dd
Changed ignoreWatts to wattsAsAResource. This resulted in flipping of the condition checks that use these variablees
2017-02-09 18:41:40 -05:00
Pradyumna Kaushik
fdcb401447
Made classMapWatts a commandLine option where one can enable and disable mapping of watts to powerclasses when accepting offers from Mesos. Removed the schedulers that were created solely for the classMapWatts feature. Retrofitted all schedulers to use the powerClass mapped watts attribute for a task, if classMapWatts has been enabled. Removed unnecessary functions and variables from constants.go. Removed unnecessary functions from utilities/utils.go. Fixed operator precendence issue with takeOffer(...) in some of the schedulers. Added TODO to decouple capping strategies from the schedulers completely. Added TODO to move all the common struct attributes in the schedulers into base.go.
2017-02-09 18:05:38 -05:00
Pradyumna Kaushik
0d79079bf6
changed scheduler to binPacked
2017-02-05 14:59:34 -05:00
Pradyumna Kaushik
395917a97e
changed pcplogger to pcplog and extrema
2017-02-05 01:08:48 -05:00
Pradyumna Kaushik
eea0db0b3d
retrofitted schedulers by renaming 'taken' to 'offerTaken' for the boolean to indicate whether an offer has been consumed.
2017-02-04 16:59:25 -05:00
Pradyumna Kaushik
04d722d20f
removed the new commandline argument for powerClass. This will be part of another patch to the code.
2017-01-31 15:13:55 -05:00
Pradyumna Kaushik
92e432c312
formatted code
2017-01-28 21:37:01 -05:00
Pradyumna Kaushik
3a7c0dc33b
changed message for command-line argument 'powerClass'
2017-01-28 21:36:33 -05:00
Pradyumna Kaushik
ee0cada747
changed name of command-line argument 'classMapWatts' to 'powerClass'
2017-01-28 21:33:36 -05:00
Pradyumna Kaushik
3119724154
Added another command-line argument to indicate whether to use the Watts attribute or the ClassToWatts attribute in the workload JSON.
2017-01-28 21:30:15 -05:00
Pradyumna Kaushik
6b0f4e3729
removed commented lines. Changed the scheduler to BinPackedSortedWattsSortedOffers.
2017-01-28 17:48:15 -05:00
Pradyumna Kaushik
8c6ad36b5e
changed name of StartLogAndDynamicCap(...) to StartPCPLogAndExtremaDynamicCap(...).]
2017-01-15 15:23:57 -05:00
Pradyumna Kaushik
15c4f04d75
changed the scheduler to ffswClassMapWatts
2017-01-14 19:57:01 -05:00
Pradyumna Kaushik
118e0a571a
changed scheduler to BPSWClassMapWatts. Also, capping is extrema.
2017-01-06 16:46:31 -08:00
Pradyumna Kaushik
d5860a91ae
fixed merge conflicts
2017-01-06 15:58:50 -08:00
Pradyumna Kaushik
58bc24cb72
Changed the scheduler to run
2017-01-06 15:57:08 -08:00
Renan DelValle
776bffb100
Finished bin packed max min.
2017-01-04 20:25:54 -05:00
Renan DelValle
2678032c2c
Go fmt on the entire project
2017-01-03 20:57:25 -05:00
Renan DelValle
b73c30a8bf
Implemented a scheduling tracer. Logs time date and host:task-ID. Made log prefix more global since it needs to be constant for all log files generated.
2017-01-03 20:30:21 -05:00