Large-Scale and Distributed Optimization