Parallel and Distributed Computation by Dimitri P Bertsekas