I. Introduction
Distributed optimization algorithms have a wide range of applications in engineering [9], [10], [14] and statistics [2] when the scale of the optimization problem becomes too large to be solved centrally. A fundamental issue in the analysis of optimization algorithms is convergence, in particular convergence rate, which is a measure of how quickly an algorithm is able to locate an optimal solution. Traditional analysis of convergence rates relies on nonconstructive analytic proof techniques, which are often devised on an algorithm-by-algorithm basis and therefore do not readily generalize to new algorithms. As a result, one often needs to start the analysis from scratch when new requirements such as robustness, security, and communication constraints are introduced to existing algorithms.