Parallel Programming in OpenMP
Chandra, Rohit; Menon, Ramesh; Dagum, Leo; Kohr, David; Maydan, Dror; McDonald, Jeff
Couldn't load pickup availability
Table of contents
- Cover
- Contentsix
- Forewordvii
- Prefacexiii
- Chapter 1. Introduction1
- 1.1 Performance with OpenMP2
- 1.2 A First Glimpse of OpenMP6
- 1.3 The OpenMP Parallel Computer8
- 1.4 Why OpenMP?9
- 1.5 History of OpenMP13
- 1.6 Navigating the Rest of the Book14
- Chapter 2. Getting Started with OpenMP15
- 2.1 Introduction15
- 2.2 OpenMP from 10,000 Meters16
- 2.3 Parallelizing a Simple Loop23
- 2.4 A More Complicated Loop29
- 2.5 Explicit Synchronization32
- 2.6 The reduction Clause35
- 2.7 Expressing Parallelism with Parallel Regions36
- 2.8 Concluding Remarks39
- 2.9 Exercises40
- Chapter 3. Exploiting Loop-Level Parallelism41
- 3.1 Introduction41
- 3.2 Form and Usage of the parallel do Directive42
- 3.3 Meaning of the parallel do Directive46
- 3.4 Controlling Data Sharing47
- 3.5 Removing Data Dependences65
- 3.6 Enhancing Performance82
- 3.7 Concluding Remarks90
- 3.8 Exercises90
- Chapter 4. Beyond Loop-Level Parallelism: Parallel Regions93
- 4.1 Introduction93
- 4.2 Form and Usage of the parallel Directive94
- 4.3 Meaning of the parallel Directive97
- 4.4 threadprivate Variables and the copyin Clause100
- 4.5 Work-Sharing in Parallel Regions108
- 4.6 Restrictions on Work-Sharing Constructs119
- 4.7 Orphaning of Work-Sharing Constructs123
- 4.8 Nested Parallel Regions126
- 4.9 Controlling Parallelism in an OpenMP Program130
- 4.10 Concluding Remarks137
- 4.11 Exercises138
- Chapter 5. Synchronization141
- 5.1 Introduction141
- 5.2 Data Conflicts and the Need for Synchronization142
- 5.3 Mutual Exclusion Synchronization147
- 5.4 Event Synchronization157
- 5.5 Custom Synchronization: Rolling Your Own162
- 5.6 Some Practical Considerations165
- 5.7 Concluding Remarks168
- 5.8 Exercises168
- Chapter 6. Performance171
- 6.1 Introduction171
- 6.2 Key Factors That Impact Performance173
- 6.3 Performance-Tuning Methodology198
- 6.4 Dynamic Threads201
- 6.5 Bus-Based and NUMA Machines204
- 6.6 Concluding Remarks207
- 6.7 Exercises207
- Appendix A: A Quick Reference to OpenMP211
- References217
- Index221
- Vendor Elsevier S & T
- SKU 9781558606715
- ISBN-13 9780080513539
- Author Chandra, Rohit; Menon, Ramesh; Dagum, Leo; Kohr, David; Maydan, Dror; McDonald, Jeff
- Category Computers
- Subject Distributed Systems & Computing
Do you have questions about this book?
The rapid and widespread acceptance of shared-memory multiprocessor architectures has created a pressing demand for an efficient way to program these systems. At the same time, developers of technical and scientific applications in industry and in government laboratories find they need to parallelize huge volumes of code in a portable fashion. OpenMP, developed jointly by several parallel computing vendors to address these issues, is an industry-wide standard for programming shared-memory and distributed shared-memory multiprocessors. It consists of a set of compiler directives and library routines that extend FORTRAN, C, and C++ codes to express shared-memory parallelism.
Parallel Programming in OpenMP is the first book to teach both the novice and expert parallel programmers how to program using this new standard. The authors, who helped design and implement OpenMP while at SGI, bring a depth and breadth to the book as compiler writers, application developers, and performance engineers.
* Designed so that expert parallel programmers can skip the opening chapters, which introduce parallel programming to novices, and jump right into the essentials of OpenMP.
* Presents all the basic OpenMP constructs in FORTRAN, C, and C++.
* Emphasizes practical concepts to address the concerns of real application developers.
* Includes high quality example programs that illustrate concepts of parallel programming as well as all the constructs of OpenMP.
* Serves as both an effective teaching text and a compact reference.
* Includes end-of-chapter programming exercises.
Instant delivery by email
Your access email arrives within minutes of checkout, with a sign-in link for each book — no shipping, no waiting.
Read on any device
Books open in VitalSource Bookshelf on your phone, tablet, or computer, online or offline. Your library is always available at aafaq.vitalsource.com — just log in with the email you used at checkout.
Lost the email?
Resend it to yourself in seconds from My eBook orders, or email cs@aafaqeducation.com and we'll help.