Parallel computers have become widely available in recent years. Many scientists are now using them to investigate the grand challenges of science, such as modeling global climate change, determining the masses of elementary particles from first principles, or sequencing the human genome. However, software for parallel computers has developed far more slowly than the hardware. Many incompatible programming systems exist, and many useful programming techniques are not widely known. Practical Parallel Programming provides scientists and engineers with a detailed, informative, and often critical introduction to parallel programming techniques. Following a review of the fundamentals of parallel computer theory and architecture, it describes four of the most popular parallel programming models in use today—data parallelism, shared variables, message passing, and Linda—and shows how each can be used to solve various scientific and numerical problems. Examples, coded in various dialects of Fortran, are drawn from such domains as the solution of partial differential equations, solution of linear equations, the simulation of cellular automata, studies of rock fracturing, and image processing. Practical Parallel Programming will be particularly helpful for scientists and engineers who use high-performance computers to solve numerical problems and do physical simulations but who have little experience of networking or concurrency. The book can also be used by advanced undergraduate and graduate students in computer science in conjunction with material covering parallel architectures and algorithms in more detail. Computer science students will gain a critical appraisal of the current state of the art in parallel programming. Scientific and Engineering Computation series
In addition to covering general parallelism concepts, this text teaches practical programming skills for both shared memory and distributed memory architectures.
We hope this book will be of interest to researchers, students and all those working in the field of parallel programming and high performance computing.
Takes a tutorial approach, starting with small programming examples and building progressively to more challenging examples Explains how to develop parallel programs using MPI, Pthreads and OpenMP programming models A robust package of ...
Practical Parallel Computing provides information pertinent to the fundamental aspects of high-performance parallel processing. This book discusses the development of parallel applications on a variety of equipment.
The patterns-based approach offers structure and insight that developers can apply to a variety of parallel programming models Develops a composable, structured, scalable, and machine-independent approach to parallel computing Includes ...
Parallel Programming: Techniques And Applications Using Networked Workstations And Parallel Computers, 2/E
The book, now in its second edition, not only provides sufficient practical exposure to the programming issues but also enables its readers to make realistic attempts at writing parallel programs using easily available software tools.
The emphasis lies on parallel programming techniques needed for different architectures. For this second edition, all chapters have been carefully revised.
Advancements in microprocessor architecture, interconnection technology, and software development have fueled rapid growth in parallel and distributed computing.
Although PRAM (Parallel Random Access Memory) is a well-known topic in parallel computing, its practical application has rarely been explored. This groundbreaking work changes all that. Written by world experts...