The OpenMP Common Core
Making OpenMP Simple Again
320 pp., 8 x 9 in, 107 b&w illus.
- Published: November 19, 2019
- Publisher: The MIT Press
- Published: November 26, 2019
- Publisher: The MIT Press
How to become a parallel programmer by learning the twenty-one essential components of OpenMP.
This book guides readers through the most essential elements of OpenMP—the twenty-one components that most OpenMP programmers use most of the time, known collectively as the “OpenMP Common Core.” Once they have mastered these components, readers with no prior experience writing parallel code will be effective parallel programmers, ready to take on more complex aspects of OpenMP. The authors, drawing on twenty years of experience in teaching OpenMP, introduce material in discrete chunks ordered to support effective learning. OpenMP was created in 1997 to make it as simple as possible for applications programmers to write parallel code; since then, it has grown into a huge and complex system. The OpenMP Common Core goes back to basics, capturing the inherent simplicity of OpenMP.
After introducing the fundamental concepts of parallel computing and history of OpenMP's development, the book covers topics including the core design pattern of parallel computing, the parallel and worksharing-loop constructs, the OpenMP data environment, and tasks. Two chapters on the OpenMP memory model are uniquely valuable for their pedagogic approach. The key for readers is to work through the material, use an OpenMP-enabled compiler, and write programs to experiment with each OpenMP directive or API routine as it is introduced. The book's website, updated continuously, offers a wide assortment of programs and exercises.
“This book fills a major gap in the literature on parallel application development. It offers a practical introduction to the most widely used features in OpenMP and explains how to use them effectively to solve a range of programming problems. I highly recommend it for beginners and intermediate users.”
Barbara Chapman, Professor of Applied Mathematics and Statistics and Computer Science, Stony Brook University
“The OpenMP API is used to program a wide range of parallel systems from basic multicore processors to large shared-memory and heterogeneous systems with coprocessors. To master OpenMP, you need a solid foundation based on the core features of the language. Based on the authors' experience teaching OpenMP for over twenty years, this book is a great tool to help readers build that foundation.”
Michael Klemm, CEO, OpenMP Architecture Review Board
“This book should be on the bookshelf of every OpenMP programmer. This is not only a mandatory read for beginners; even more seasoned OpenMP developers will find certain parts very useful. In particular, I found the coverage of the memory model—one of the hardest parts to master—excellent.”
Ruud van der Pas, Distinguished Engineer, Oracle; coauthor of Using OpenMP: Portable Shared Memory Parallel Programming and Using OpenMP—The Next Step