Introduction to parallel computing: from algorithms to programming on state-of-the-art platforms

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

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  Read more...

Abstract: 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

Author(s): Bulić, Patricio; Robič, Borut; Slivnik, Boštjan; Trobec, Roman
Series: Undergraduate topics in computer science
Publisher: Springer
Year: 2018

Language: English
Pages: 256
Tags: Parallel programming (Computer science);Parallel processing (Electronic computers);Programming Techniques.;Processor Architectures.;Control Structures and Microprogramming.;Numeric Computing.;Computers -- Systems Architecture -- General.;Computers -- Programming -- Algorithms.;Computer architecture & logic design.;Algorithms & data structures.;Mathematical theory of computation.;Computers -- Programming -- General.;Computer programming -- software development.

Content: Part I: Foundations --
Why Do We Need Parallel Programming --
Overview of Parallel Systems --
Part II: Programming --
Programming Multi-Core and Shared Memory Multiprocessors Using OpenMP --
MPI Processes and Messaging --
OpenCL for Massively Parallel Graphic Processors --
Part III: Engineering --
Engineering: Parallel Computation of the Number ? --
Engineering: Parallel Solution of 1-D Heat Equation --
Engineering: Parallel Implementation of Seam Carving --
Final Remarks and Perspectives --
Appendix A: Hints for Making Your Computer a Parallel Machine.