A Survey on Parallel and Distributed Deep Learning