Introduces the foundations and state of the art of parallel computing
Suitable for a 15-week course for advanced undergraduate studies, and featuring exercises
Covers the key aspects of parallel computing: parallel, distributed and embedded multicore computing, computer clusters, and GPU computing
Roman Trobec is Head of the Parallel and Distributed Computing Laboratory at the Jožef Stefan Institute, Ljubljana, Slovenia, and an Associate Professor in the Faculty of Computer and Information Science at the University of Ljubljana.
Boštjan Slivnik is an Assistant Professor in the Faculty of Computer and Information Science at the University of Ljubljana.
Patricio Bulic is an Associate Professor, and
Borut Robic is a Full Professor, at the same institution.
Other Springer titles by the same authors include The Foundations of Computability Theory, Application and Multidisciplinary Aspects of Wireless Sensor Networks: Concepts, Integration, and Case Studies, and Parallel Computing: Numerics, Applications, and Trends.
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.
Part I: FoundationsWhy 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
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.
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 pi.- 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.
Roman Trobec is Head of the Parallel and Distributed Computing Laboratory at the Jozef Stefan Institute, Ljubljana, Slovenia, and an Associate Professor in the Faculty of Computer and Information Science at the University of Ljubljana.
Bostjan Slivnik is an Assistant Professor in the Faculty of Computer and Information Science at the University of Ljubljana.
Patricio Bulic is an Associate Professor, and
Borut Robic is a Full Professor, at the same institution.
Other Springer titles by the same authors include The Foundations of Computability Theory, Application and Multidisciplinary Aspects of Wireless Sensor Networks: Concepts, Integration, and Case Studies, and Parallel Computing: Numerics, Applications, and Trends.
Über den Autor
Roman Trobec is Head of the Parallel and Distributed Computing Laboratory at the Jožef Stefan Institute, Ljubljana, Slovenia, and an Associate Professor in the Faculty of Computer and Information Science at the University of Ljubljana. Boštjan Slivnik is an Assistant Professor in the Faculty of Computer and Information Science at the University of Ljubljana. Patricio Buli¿ is an Associate Professor, and Borut Robi¿ is a Full Professor, at the same institution.
Other Springer titles by the same authors include The Foundations of Computability Theory, Application and Multidisciplinary Aspects of Wireless Sensor Networks: Concepts, Integration, and Case Studies, and Parallel Computing: Numerics, Applications, and Trends.
Inhaltsverzeichnis
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.
Klappentext
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.
Introduces the foundations and state of the art of parallel computing
Suitable for a 15-week course for advanced undergraduate studies, and featuring exercises
Covers the key aspects of parallel computing: parallel, distributed and embedded multicore computing, computer clusters, and GPU computing