Advancements in microprocessor architecture, interconnection technology,
and software development have fueled rapid growth in parallel and
distributed computing. However, this development is only of practical
benefit if it is accompanied by progress in the design, analysis and
programming of parallel algorithms.
This concise textbook provides, in one place, three mainstream
parallelization approaches, Open MPP, MPI and OpenCL, for multicore
computers, interconnected computers and graphical processing units. An
overview of practical parallel computing and principles will enable the
reader to design efficient parallel programs for solving various
computational problems on state-of-the-art personal computers and
computing clusters.
Topics covered range from parallel algorithms, programming tools,
OpenMP, MPI and OpenCL, followed by experimental measurements of
parallel programs' run-times, and by engineering analysis of obtained
results for improved parallel execution performances.
Many examples and exercises support the exposition.