|1.0.0||Aug 26, 2021|
#1 in #online
Unit and integration test can be run with
Maturin can be used to build the Python bindings for this crate.
- create a virtualenv:
python3 -m venv venv
- build new bindings:
Now, the bindings are available as the
Smoothed Online Convex Optimization (SOCO) is the problem of choosing a sequence of points in some decision space minimizing a hitting cost which is paid for choosing a point and which changes in-between rounds as well as a movement cost that is paid for movement in the decision space.
Thus, SOCO can be understood as online convex optimization with an additional smoothing element.
A special focus of this work is the application to the dynamic right-sizing of data centers.
The implementation can mainly be broken down into three separate parts.
- Algorithms - The implementation of various offline and online algorithms for SOCO andrelated problems. Here is a complete list of the implemented algorithms.
- Streaming - Utilities for streaming the online algorithms in practice. This includes a TCP server that can be queried to run iterations of the online algorithms sequentially.
- Data Center Model - For the application of dynamically right-sizing data centers, this implementation includes a comprehensive cost model of data centers.
To achieve optimal performance, everything is implemented in Rust and heavily parallelized. Python bindings are included to interface with the streaming and data center model components.