Автор: Sergei Kurgalin, Sergei Borzunov
Издательство: Springer
Год: 2019
Страниц: 210
Язык: английский
Формат: pdf (true), epub
Размер: 10.08 MB
The book discusses the fundamentals of high-performance computing. The authors combine visualization, comprehensibility, and strictness in their material presentation, and thus influence the reader towards practical application and learning how to solve real computing problems. They address both key approaches to programming modern computing systems: multithreading-based parallelizing in shared memory systems, and applying message-passing technologies in distributed systems.
The book is suitable for undergraduate and graduate students, and for researchers and practitioners engaged with high-performance computing systems. Each chapter begins with a theoretical part, where the relevant terminology is introduced along with the basic theoretical results and methods of parallel programming, and concludes with a list of test questions and problems of varying difficulty.
Many problems are provided with answers, hints, and solutions, including sample program code. The texts of programs demonstrating the solutions of both standard and more complex problems are usually provided in full and unabridged form, which is especially important for first acquaintance with the book’s material. The programs are written with plenty of explanatory comments.
There exist two main approaches to the programming of modern computing systems: multithreading-based parallelizing in shared-memory systems and the application of message-passing technologies in distributed systems. Both of these approaches are discussed in the book.
Most of the parallel programs used as examples are supplemented with speedup curves for the computational part of the program code as a function of the number of threads in a shared-memory system. The speedup values were calculated for the supercomputer at Voronezh State University. Visualization of the dependence of the speedup on the number of threads allows students to gain a deeper understanding of the operating principles of parallel algorithms.
The examples and problems provided in the book pay much attention to ensuring the required computational accuracy. In all cases, the computational error bounds required from the program are strictly defined.
It is only necessary to know the basic constructs of the algorithmic language C, which is used to realize the algorithms and describe the problem solutions presented in the book. The C language was chosen because this language, on the one hand, is widely known and, on the other hand, is one of the main languages for supercomputer computations.
Скачать A Practical Approach to High-Performance Computing