A Primal-Dual Operator Splitting Method for Conic Optimization

We develop a simple operator splitting method for solving a primal conic
optimization problem; we show that the iterates also solve the dual problem.
The resulting algorithm is very simple to describe and implement and yields
solutions of modest accuracy in competitive times. Several versions of the
algorithm are amenable to parallelization, either via distributed linear
algebra or GPU-accelerated matrix-vector multiplication. We provide a simple,
single-threaded C implementation for reference.