Efficient Stochastic Programming in Julia

09/23/2019 ∙ by Martin Biel, et al. ∙ 0

We present StochasticPrograms.jl, an open-source framework for stochastic programming written in the Julia language. The framework includes both modeling tools and structure-exploiting optimization algorithms. We show how stochastic programming models can be efficiently formulated using expressive syntax. Defined models can be instantiated, inspected, and analyzed interactively. The framework was implemented to scale seamlessly to distributed environments. As a result, stochastic programs are efficiently memory-distributed on supercomputers or cloud architectures and solved using parallel optimization algorithms. These structure-exploiting solvers are based on variations of the classical L-shaped and progressive-hedging algorithms. We provide a concise mathematical background for the various tools and constructs available in the framework, along with code listings exemplifying their usage. Both software innovations related to the implementation of the framework and algorithmic innovations related to the structured solvers are highlighted. We conclude by performing numerical benchmarks of the distributed algorithms in a multi-node setup. We showcase strong scaling properties of the solvers and outline techniques for further speedups.



There are no comments yet.


page 1

page 2

page 3

page 4

This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.