Giter Site home page Giter Site logo

albertaillet / kepler-model-server Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sustainable-computing-io/kepler-model-server

0.0 0.0 0.0 32.6 MB

Model Server for Kepler

License: Apache License 2.0

Shell 9.47% Python 89.24% Makefile 1.09% Dockerfile 0.21%

kepler-model-server's Introduction

Kepler Power Model

This repository contains source code related to Kepler power model. The modules in this reposioty connects to core Kepler project and kepler-model-db as below.

Usage

Getting Powers from Estimator

module: estimator (src/estimate/estimator.py)

/tmp/estimator.socket

Parameters of PowerRequest

key value description
metrics list of string list of available input features (measured metrics)
output_type either of the following values: AbsPower (for node-level power model), DynPower (for container-level power model) the requested model type
trainer_name (optional) string filter model with trainer name.
filter (optional) string expression in the form attribute1:threshold1; attribute2:threshold2.

Getting Power Models from Model Server

module: server (src/server/model_server.py)

:8100/model
POST

Parameters of ModelRequest

key value description
metrics list of string list of available input features (measured metrics)
output_type either of the following values: AbsPower (for node-level power model), DynPower (for container-level power model) the requested model type
weight boolean return model weights in json format if true. Otherwise, return model in zip file format.
trainer_name (optional) string filter model with trainer name.
node_type (optional) string filter model with node type.
filter (optional) string expression in the form attribute1:threshold1; attribute2:threshold2.

Posting Model Weights [WIP]

module: server (src/server/model_server.py)

/metrics
GET

Online Trainer [WIP]

module: online trainer (src/train/online_trainer.py) running as a sidecar to server

periodically query prometheus metric server on SAMPLING INTERVAL

Profiler [WIP]

module: profiler (src/profile/profiler.py)

Offline Trainer

module: offline trainer (src/train/offline_trainer.py)

:8102/train
POST

Parameters of TrainRequest

key value description
name string pipeline/model name
energy_source valid key in PowerSourceMap target enery source to train for
trainer TrainAttribute attributes for training
prome_response json prom response with workload for power model training
  • TrainAttribute
    key value description
    abs_trainers list of available trainer class names trainer classes in the pipeline to train for absolute power
    dyn_trainers list of available trainer class names trainer classes in the pipeline to train for dynamic power
    isolator valid isolator class name isolator class of the pipeline to isolate the target data to train for dynamic power
    isolator_args dict mapping between isolator-specific argument name and value

Test

Build image for testing, run

make build-test
Test case Command
Training pipeline make test-pipeline
Model server make test-model-server
Estimator make test-estimator
Offline Trainer make test-offline-trainer

For more test information, check here.

Contributing

Please check the roadmap and guidelines to join us here.

kepler-model-server's People

Contributors

kaiyiliu1234 avatar rootfs avatar sunya-ch avatar husky-parul avatar albertaillet avatar shreyanand avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.