Algorithms and Parallel Computing