Software

Software development is an essential component of our research. Every algorithm we propose is prototyped and evaluated numerically. While much of our code is written for specific experiments, many projects mature into durable, open-source packages. This page highlights a few of these contributions. Please note that rather than hosting central forks, the links below direct you to the personal GitHub repositories of the students or postdocs who led the development.

Selected software packages


StochasticPrograms.jl Julia

A comprehensive Julia package for modeling and solving stochastic programming problems. It supports multi-stage models and various solution algorithms.

M. Biel and M. Johansson, "Efficient stochastic programming in Julia", Informs J. on Computing, 2022

View on GitHub

Regularized-DROT Python/CUDA

High-performance, GPU-accelerated solver for regularized optimal transport problems based on Douglas-Rachford splitting.

J. Lindbäck Z. Wang and M Johansson, "Bringing regularized optimal transport to lightspeed: a splitting method adapted for GPUs", NeurIPS 2023

View on GitHub

Decent-DP Python/PyTorch

Implementation of decentralized algorithms for data-parallel training on clusters.

Z. Wang, J. Zhang, X. Wu and M. Johansson, "From promise to practice: realizing high-performance decentralized training", ICLR 2025

View on GitHub

OpenMPC Python/cvxpy/cascadi

A versatile toolbox for Model Predictive Control, providing a collection of algorithms and examples for education and research.

M. Johansson, G. Marchesini and P. Roque.

View on GitHub