distributed algorithm to solve several instances of  from several areas in engineering, namely average consensus, compressed sensing problems, and support vector machines. Our simulations show that, for each of these problems and for almost all network types, our proposed algorithm requires significantly less communication than prior state-of-the-art algorithms, including those that are specifically designed for a particular problem and are not applicable to the entire problem class .

Next we formally state the problem we solve; then we give an overview of related work.

[[**Formal problem statement.**]{}]{} Given a network with $P$ nodes, we associate $f_p$ and $X_p$ in  with the $p$th node of the network, $p=1,\ldots,P$. We make the following assumptions:

\[Ass:FunctionsAndSets\] Each $f_p: \mathbb{R}^n \xrightarrow{} \mathbb{R}$ is a convex function over $\mathbb{R}^n$, and each set $X_p$ is closed and convex.

\[Ass:ProblemSolvable\] Problem  is solvable.

\[Ass:Network\] The network is connected and its topology does not vary with time.

Assumption \[Ass:FunctionsAndSets\] involves the concepts of convexity of a function and convexity of a set. We assume the reader is familiar with these concepts, as well as with Lagrangian duality [@Boyd:ConvexOpti; @Bertsekas:Convex]. The second assumption states that there is at least one vector $x^\star$ that solves . This implies that the 