Parallel and distributed algorithms. (2nd July 2018)