Run tests codecov DOI

This package implements an algorithmic framework for parallel dual decomposition methods in Julia. While not aiming to outperforming the decomposition solvers written in a low-level language (e.g., DSP), this package provides the following features that DSP does not provide:

  • This is designed to solve structured MINLP (and thus NLP) too, as long as the objective function is linear or quadratic.
  • One can use any optimization solvers through MathOptInterface.jl.
  • Of course, user does not need to compile any code for parallel solutions with MPI.jl.


This package can be installed by cloning this repository:

] add DualDecomposition


Please see examples in ./examples.

Citing this package

  author       = {Kim, Kibaek and Nakao, Hideaki and Kim, Youngdae and Schanen, Michel and Zhang, Weiqi and Li, Can},
  title        = {{DualDecomposition.jl: Parallel Dual Decomposition in Julia}},
  month        = July,
  year         = 2021,
  doi          = {10.5281/zenodo.5079761},
  version      = {0.3.0},
  publisher    = {Zenodo},
  url          = {https://doi.org/10.5281/zenodo.5079761}


This material is based upon work supported by the U.S. Department of Energy, Office of Science, under contract number DE-AC02-06CH11357.