Primal-dual methods for large-scale and distributed convex optimization and data analytics