Distributed Optimization And Machine Learning