Buy new:
-
Ships from: KICRI AMERICANO Sold by: KICRI AMERICANO
Save with Used - Like New
-
Ships from: ThriftBooks-Dallas Sold by: ThriftBooks-Dallas
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Parallel Programming in OpenMP 1st Edition
Purchase options and add-ons
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.
- ISBN-101558606718
- ISBN-13978-1558606715
- Edition1st
- PublisherMorgan Kaufmann
- Publication dateOctober 16, 2000
- LanguageEnglish
- Dimensions7.31 x 0.57 x 9.31 inches
- Print length240 pages
Editorial Reviews
Amazon.com Review
At its heart, OpenMP is remarkably simple. By adding a handful of compiler directives (or pragmas) in Fortran or C/C++, plus a few optional library calls, programmers can "parallelize" existing software without completely rewriting it. This book starts with simple examples of how to parallelize "loops"--iterative code that in scientific software might work with very large arrays. Sample code relies primarily on Fortran (undoubtedly the language of choice for high-end numerical software) with descriptions of the equivalent calls and strategies in C/C++. Each sample is thoroughly explained, and though the style in this book is occasionally dense, it does manage to give plenty of practical advice on how to make code run in parallel efficiently. The techniques explored include how to tweak the default parallelized directives for specific situations, how to use parallel regions (beyond simple loops), and the dos and don'ts of effective synchronization (with critical sections and barriers). The book finishes up with some excellent advice for how to cooperate with the cache mechanisms of today's OpenMP-compliant systems.
Overall, Parallel Programming in OpenMP introduces the competent research programmer to a new vocabulary of idioms and techniques for parallelizing software using OpenMP. Of course, this standard will continue to be used primarily for academic or research computing, but now that OpenMP machines by major commercial vendors are available, even business users can benefit from this technology--for high-end forecasting and modeling, for instance. This book fills a useful niche by describing this powerful new development in parallel computing. --Richard Dragan
Topics covered:
- Overview of the OpenMP programming standard for shared-memory multiprocessors
- Description of OpenMP parallel hardware
- OpenMP directives for Fortran and pragmas for C/C++
- Parallelizing simple loops
- parallel do / parallel for directives
- Shared and private scoping for thread variables
- reduction operations
- Data dependencies and how to remove them
- OpenMP performance issues (sufficient work, balancing the load in loops, scheduling options)
- Parallel regions
- How to parallelize arbitrary blocks of code (master and slave threads, threadprivate directives and the copyin clause)
- Parallel task queues
- Dividing work based on thread numbers
- Noniterative work sharing
- Restrictions on work-sharing
- Orphaning
- Nested parallel regions
- Controlling parallelism in OpenMP, including controlling the number of threads, dynamic threads, and OpenMP library calls for threads
- OpenMP synchronization
- Avoiding data races
- Critical section directives (named and nested critical sections and the atomic directive
- Runtime OpenMP library lock routines
- Event synchronization (barrier directives and ordered sections)
- Custom synchronization, including the flush directive
- Programming tips for synchronization
- Performance issues with OpenMP
- Amdahl's Law
- Load balancing for parallelized code
- Hints for writing parallelized code that fits into processor caches
- Avoiding false sharing
- Synchronization hints
- Performance issues for bus-based and Non-Uniform Memory Access (NUMA) machines
- OpenMP quick reference
Review
From the Back Cover
"This book will provide a valuable resource for the OpenMP community."
- Timothy G. Mattson, Intel Corporation
"This book has an important role to play in the HPC community-both for introducing practicing professionals to OpenMP and for educating students and professionals about parallel programming. I'm happy to see that the authors have put together such a complete OpenMP presentation."
- Mary E. Zozel, Lawrence Livermore National Laboratory
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.
Features:
- 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.
About the Author
Rohit Chandra is currently a Chief Scientist at NARUS, Inc., a provider of internet business infrastructure solutions. He previously was a Principal Engineer in the Compiler Group of Silicon Graphics, where he helped design and implement OpenMP.
Ramesh Menon is a Staff Engineer at NARUS, Inc. Prior to NARUS, Ramesh was a Staff
Engineer at SGI representing SGI in the OpenMP forum. He was the founding Chairman
of the OpenMP Architecture Review Board (ARB) and supervised the writing of the
first OpenMP specifications.
Leonardo Dagum currently works for Silicon Graphics in the Linux Server Platform Group where he is responsible for the I/O infrastructure in SGI's scalable Linux server systems. He helped define the OpenMP Fortran API. His research interests include parallel algorithms and performance modeling for parallel systems.
Dave Kohr is currently a member of the Technical Staff at NARUS, Inc. He previously was
a Member of the Technical Staff in the Compiler Group at Silicon Graphics, where he helped
define and implement the OpenMP.
Dror Maydan is currently Director of Software at Tensilica, Inc., the provider of application-specific processor technology. He previously was an Engineering Department Manager in the Compiler Group of Silicon Graphics where he helped design and implement OpenMP.
Product details
- Publisher : Morgan Kaufmann
- Publication date : October 16, 2000
- Edition : 1st
- Language : English
- Print length : 240 pages
- ISBN-10 : 1558606718
- ISBN-13 : 978-1558606715
- Item Weight : 2.31 pounds
- Dimensions : 7.31 x 0.57 x 9.31 inches
- Best Sellers Rank: #2,162,742 in Books (See Top 100 in Books)
- #150 in Parallel Computer Programming
- #2,458 in Computer Programming Languages
- #4,573 in Computer Hardware & DIY
About the author

Discover more of the author’s books, see similar authors, read book recommendations and more.