Commit graph

563 commits

Author SHA1 Message Date
PRADYUMNA KAUSHIK
23875d404e
added Power as a Resource paper to readme (#24) 2021-05-31 13:36:02 -07:00
Renan I. Del Valle
73a184b8a8
Revert "Rapl node capping daemon (#21)" (#22)
This reverts commit e76c1ae972 as the
rapl-daemon will exist in its own repository.
2020-01-20 23:47:38 -08:00
Renan I. Del Valle
e76c1ae972 Rapl node capping daemon (#21)
* Initial work on rapl-daemon. Initial server set up. API to read max power per zone and API to write new power cap have both been written.

* Removing python script since this has been ported to go code now.

* Adding test for happy path retrieving max power.

* Change some data types around to avoid too much conversion.

* Add happy path test for cap zone

* Removing uncessary print statement.

* Change cap node to use a temporary setup.

* Renaming arguments to be more descriptive.

* Changing todo message.

* Changing test structure to only set up mock subsystem once and allowing functions to test on it later.

* Adding some more coverage for unhappy paths and fixing some values to reflect they are no longer floats.

* Keeping the old script around as it should be removed in a different PR.

* Delegating percentage check to capNode function.

* Fixing typo.

* Fixing typos.

* Changing shortWindow to longWindow as constraint_0 actually points to the long window.

* Renaming variable in test.

* capping funciton now returns which zones were sucessfully capped and which zones could not be capped. This information is now returned to the caller of the HTTP api.
2020-01-19 14:52:30 -05:00
Bhargavi Hanumant Alandikar
3543960689 Elektron Logging library (#16)
switch to logrus for logging.

replaced old logging library with a wrapper around logrus.
We now just need to use the exported Log(...) and Logf(...) from the logging/
package that wraps around a set of loggers constituting a chain (following COR).
Loggers are configured using a YAML file that specifies the following.
1. enabled/disabled
2. whether the message should be logged on console.
3. filename extension.
4. minimum log level.

Retrofitted source code to now use the updated logging library.
Updated the documentation with information regarding the specification
of the log config file.

Currently, the log format in the config file is not adhered to. This is going to be
addressed in a future commit.
2019-12-09 20:15:33 -05:00
PRADYUMNA KAUSHIK
9977251c14
workload validation before registering elektron. (#19)
Added a utility to help with validating structs. This utility accepts
validators and runs them. If any of the validators fail, then the
error is wrapped with a given base message and returned.

Added validators for checking different attributes of a task
definition.

Added test code to test task validators.

Retrofitted scheduler.go to just log the task validation error and
terminate. If task validation does not report any error, then the
tasks are provided to the scheduler and elektron registers itself
with Mesos.
2019-11-26 03:08:12 -05:00
PRADYUMNA KAUSHIK
e3caa90c31
Refactor imports, Add vendor/ as submodule (#5)
refact imports to github.xxx. update go.mod + go.sum

* removed vendor/ folder

* Added vendor/ submodule.

Moved dependencies that need to be vendored into separate repository.
	- https://github.com/spdfg/elektron-vendor
Added vendor/ as a submodule using the below command.
	- git submodule add https://github.com/spdfg/elektron-vendor vendor
If wanting to use vendor, run the following commands after cloning
elektron.
1. git submodule init
2. git submodule update

* added instructions to clone vendor/ submodule.

* updated module to spdfg. Refactored imports
2019-10-31 14:32:46 -04:00
PRADYUMNA KAUSHIK
b4975900f6
removed branch specifics from badge. 2019-10-25 13:43:53 -04:00
PRADYUMNA KAUSHIK
079ade2244
Added github workflow status badge. (#12) 2019-10-25 13:39:28 -04:00
PRADYUMNA KAUSHIK
aa7dbb9f88
removed CONTRIBUTORS file. (#11) 2019-10-25 01:49:50 -04:00
PRADYUMNA KAUSHIK
0d7aef9517
removed 'developers' from elektron description. (#10) 2019-10-25 01:49:36 -04:00
PRADYUMNA KAUSHIK
3a340a06ec
removed gitlab-ci.yml from project. (#8) 2019-10-25 01:48:57 -04:00
PRADYUMNA KAUSHIK
f3b92ea4eb
setup build and test workflow actions (#6)
setup build and test workflow actions

Included actions yaml file to build and test code upon push/pull-request to master.
2019-10-25 00:03:40 -04:00
Pradyumna Kaushik
26f96f361f Merge branch 'issues/issues-10-unit-tests-pcp-module' into 'master'
unit tests for pcp module

See merge request spdf/elektron!6
2019-10-24 20:07:17 +00:00
Pradyumna Kaushik
91e06fab4f Unit testing for pcp module.
Added unit tests to test code in def/ module.
Currently, AverageNodePowerHistory(...) assumes that the DRAM power
readings are being monitored. In addition, it also assumes that the
host servers are dual socket machines. However, this assumption might
not always hold true. Thus, added a TODO to fix this.
2019-10-24 20:07:17 +00:00
Pradyumna Kaushik
b27966dc3a Merge branch 'issues/issues-8-unit-tests-def-module' into 'master'
unit tests def/ module and update vendor

See merge request spdf/elektron!4
2019-10-12 06:48:46 +00:00
Pradyumna Kaushik
bac60e872a Unit testing for def/ module.
Added unit tests to test code in def/ module.
2019-10-12 06:48:45 +00:00
Pradyumna Kaushik
e24b8a08c9 Merge branch 'issues/issues-6-switch-to-go-modules' into 'master'
switch to go modules

See merge request spdf/elektron!2
2019-10-02 00:21:21 +00:00
Pradyumna Kaushik
4fbbf91b00 Switch to go modules for dependency management.
Added support for dependency management using go modules.
Note that Go version 1.11+ is required if using go modules for
dependency management.

Updated the gitlab CI yaml file to use go modules instead of copying
everything to GOPATH. Ran go mod download before running build script to
download all dependencies into cache.
2019-10-02 00:21:21 +00:00
Pradyumna Kaushik
fca8887adf Merge branch 'master' into 'master'
Fix: create log dir after validating cmdline args.

See merge request spdf/elektron!1
2018-11-13 00:12:15 +00:00
Pradyumna Kaushik
cfbb2f4bdd Fix: create log dir after validating cmdline args.
Initialization of the logger happens after all the command-line
arguments are validated. So, in case any of the command-line
arguments were invalid, the log directory is not created.
Retrofitted the driver code and the scheduler builder to only use
the language provided 'log' package as elektron's logger will not
yet be initialized.
2018-11-08 20:07:06 -05:00
Renan DelValle
97253ec4af
Adding CI build badge. 2018-11-03 11:04:21 -07:00
Renan DelValle
fba48e1d4d
First attempt at adding a CI. 2018-11-03 11:01:32 -07:00
Renan DelValle
66c2e147e2
Adding links for research papers published using Elektron 2018-11-02 21:51:57 -07:00
Renan DelValle
b162289388
Adding published research to readme. 2018-10-08 12:17:47 -07:00
Renan DelValle
291f4f3979
Adding GPLv3 Licensing. 2018-10-06 20:03:14 -07:00
Pradyumna Kaushik
943f20cb1e Removed value type from option description. 2018-10-05 23:19:44 -04:00
Pradyumna Kaushik
b61f4f2525 fixed merge conflicts due to commit amend. 2018-10-05 23:16:50 -04:00
Pradyumna Kaushik
5ce48e8dd8 -h instead of --help. Added full stop to sentence. 2018-10-05 23:16:01 -04:00
Pradyumna Kaushik
5bd232d798 -h instead of --help. 2018-10-05 23:15:36 -04:00
Pradyumna Kaushik
91c49292ea Changed Usage to Features for semantics. 2018-10-05 23:13:36 -04:00
Pradyumna Kaushik
6549f8c13c Escape underscore. Changed 'scheduling' to 'sched' in format. 2018-10-05 23:06:04 -04:00
Pradyumna Kaushik
f3a1501e6e Description for task classification overhead logs. 2018-10-05 23:05:01 -04:00
Pradyumna Kaushik
f5b2ba789c Description for scheduling window logs. 2018-10-05 23:04:44 -04:00
Pradyumna Kaushik
9a4470fd16 Description for scheduling policy switch trace. 2018-10-05 22:49:23 -04:00
Pradyumna Kaushik
598acf75f2 Description for scheduled trace log. 2018-10-05 22:41:39 -04:00
Pradyumna Kaushik
1902d1a3e8 Describing PCP data metrics and PCP logs. 2018-10-05 17:28:00 -04:00
Pradyumna Kaushik
bcc2b4e4cc Removed Degree of Collocation logger. 2018-10-05 14:11:49 -04:00
Pradyumna Kaushik
39ba273d1a Changed Logging.md to Logs.md 2018-10-05 13:19:42 -04:00
Pradyumna Kaushik
66dd017eb9 Updated description of power capping policies.
Updated point in Usage section to indicate that power capping policies
are pluggable.
Mentioned that it is possible to plug in power capping policies.
Added the commandline option as well.
2018-10-05 13:15:07 -04:00
Pradyumna Kaushik
ea0eda2db1 Removed redundant information. Changed Logging to Logs. 2018-10-05 13:12:23 -04:00
Pradyumna Kaushik
f0e368c98c Information on different logs. Added PCP.md file. 2018-10-05 13:06:46 -04:00
Pradyumna Kaushik
6f97c36411 Passed scheduler to extrema and prog-extrema. 2018-10-05 00:41:43 -04:00
Pradyumna Kaushik
aca9dcd185 Added degcol logger to extrema and prog-extrema.
Degree of collocation logger (or task share variance logger) was
only present in pcp.go. Copied that code into extrema and prog-extrema.
Also, exposed visibility of pcp/utils.go#cpuUtilsPerNode(...) and
pcp/utils.go#memUtilsPerNode(...) to public.
2018-10-05 00:38:24 -04:00
Pradyumna Kaushik
d9780a6a9f Merge branch 'master' of gitlab.com:spdf/elektron 2018-10-04 20:23:25 -04:00
Pradyumna Kaushik
4200eda783 Reorganized workload section.
Also removed class_to_watts attribute from the example to keep it
simple.
2018-10-04 20:22:23 -04:00
Pradyumna Kaushik
59d096bccb Reorganized workload section. 2018-10-04 20:21:55 -04:00
Pradyumna Kaushik
29b84a00c7 shortened value names. 2018-10-04 20:15:07 -04:00
Pradyumna Kaushik
c9207d1714 Run commands and options for scheduling policy switching. 2018-10-04 20:13:26 -04:00
Pradyumna Kaushik
e48156a270 Other options when plugging in powercapping. 2018-10-04 20:12:53 -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