Approximation and Relaxation Approaches for Parallel and Distributed Machine Learning