Introduction to Parallel Computing: Architectures and Models, Algorithms and Measures
摘要
The first third of the lectures on Parallel Computing deals with the fundamental facts of Parallel Computing which distinguish it from Distributed Computing and Concurrent Computing. Computational problems can be creatively and constructively explored and studied with the PRAM model and judged by comparing against the best (known) sequential baselines. This naturally leads to the fundamental concepts of (parallel) work, time, work- and cost-optimality, speed-up, efficiency, and various notions of scalability. These concepts are helpful and meaningful, theoretically as well as practically and empirically. Parallelization patterns that can help both in design and analysis of parallel algorithms and programs are described. As concrete examples, parallel algorithms for important problems with easy linear-time, sequential algorithms are discussed at some length.