Scaling up Machine Learning: Parallel and Distributed Approaches