Crate soco

Source
Expand description

§Algorithms for Smoothed Online Convex Optimization

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.

Thesis, Presentation (with animations), Documentation

§Acknowledgement

The following is a result of my undergraduate thesis work at TUM under the supervision of Prof. Dr. Susanne Albers and advised by Jens Quedenfeld.

§Overview

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.

Modules§

algorithms
Offline and Online Algorithms.
breakpoints
Non-continuous or non-smooth points of functions.
config
Definition of configurations (points in the decision space).
convert
Conversions between problem instances.
cost
Definition of cost functions.
distance
Definition of distance-generating functions and norms.
model
Abstract and concrete definitions of models that are used to generate problem instances.
problem
Abstract definition of problem variants.
result
Wrappers around values returned by the public interface.
schedule
Definition of schedules (sequences of points in the decision space).
streaming
Utilities for executing offline and online algorithms given a model.
vec_wrapper
Utilities to use iterators with wrappers around vectors.
verifiers
Functions to check that values satisfy the imposed constraints.