{"title":"Using OpenMP - portable shared memory parallel programming","authors":"B. Chapman, Gabriele Jost, R. V. D. Pas","doi":"10.5860/choice.46-0930","DOIUrl":null,"url":null,"abstract":"\"I hope that readers will learn to use the full expressibility and power of OpenMP. This book should provide an excellent introduction to beginners, and the performance section should help those with some experience who want to push OpenMP to its limits.\" -- from the foreword by David J. Kuck, Intel Fellow, Software and Solutions Group, and Director, Parallel and Distributed Solutions, Intel Corporation OpenMP, a portable programming interface for shared memory parallel computers, was adopted as an informal standard in 1997 by computer scientists who wanted a unified model on which to base programs for shared memory systems. OpenMP is now used by many software developers; it offers significant advantages over both hand-threading and MPI. Using OpenMP offers a comprehensive introduction to parallel programming concepts and a detailed overview of OpenMP. Using OpenMP discusses hardware developments, describes where OpenMP is applicable, and compares OpenMP to other programming interfaces for shared and distributed memory parallel architectures. It introduces the individual features of OpenMP, provides many source code examples that demonstrate the use and functionality of the language constructs, and offers tips on writing an efficient OpenMP program. It describes how to use OpenMP in full-scale applications to achieve high performance on large-scale architectures, discussing several case studies in detail, and offers in-depth troubleshooting advice. It explains how OpenMP is translated into explicitly multithreaded code, providing a valuable behind-the-scenes account of OpenMP program performance. Finally, Using OpenMP considers trends likely to influence OpenMP development, offering a glimpse of the possibilities of a future OpenMP 3.0 from the vantage point of the current OpenMP 2.5. With multicore computer use increasing, the need for a comprehensive introduction and overview of the standard interface is clear. Using OpenMP provides an essential reference not only for students at both undergraduate and graduate levels but also for professionals who intend to parallelize existing codes or develop new parallel programs for shared memory computer architectures.","PeriodicalId":227835,"journal":{"name":"Scientific and engineering computation","volume":"98 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2007-10-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1148","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Scientific and engineering computation","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.5860/choice.46-0930","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1148
Abstract
"I hope that readers will learn to use the full expressibility and power of OpenMP. This book should provide an excellent introduction to beginners, and the performance section should help those with some experience who want to push OpenMP to its limits." -- from the foreword by David J. Kuck, Intel Fellow, Software and Solutions Group, and Director, Parallel and Distributed Solutions, Intel Corporation OpenMP, a portable programming interface for shared memory parallel computers, was adopted as an informal standard in 1997 by computer scientists who wanted a unified model on which to base programs for shared memory systems. OpenMP is now used by many software developers; it offers significant advantages over both hand-threading and MPI. Using OpenMP offers a comprehensive introduction to parallel programming concepts and a detailed overview of OpenMP. Using OpenMP discusses hardware developments, describes where OpenMP is applicable, and compares OpenMP to other programming interfaces for shared and distributed memory parallel architectures. It introduces the individual features of OpenMP, provides many source code examples that demonstrate the use and functionality of the language constructs, and offers tips on writing an efficient OpenMP program. It describes how to use OpenMP in full-scale applications to achieve high performance on large-scale architectures, discussing several case studies in detail, and offers in-depth troubleshooting advice. It explains how OpenMP is translated into explicitly multithreaded code, providing a valuable behind-the-scenes account of OpenMP program performance. Finally, Using OpenMP considers trends likely to influence OpenMP development, offering a glimpse of the possibilities of a future OpenMP 3.0 from the vantage point of the current OpenMP 2.5. With multicore computer use increasing, the need for a comprehensive introduction and overview of the standard interface is clear. Using OpenMP provides an essential reference not only for students at both undergraduate and graduate levels but also for professionals who intend to parallelize existing codes or develop new parallel programs for shared memory computer architectures.
我希望读者能够学会使用OpenMP的全部表现力和强大功能。这本书应该为初学者提供一个很好的介绍,性能部分应该帮助那些有一些经验的人,他们想把OpenMP推向极限。——出自英特尔软件和解决方案组研究员、并行和分布式解决方案主管David J. Kuck的前言,英特尔公司OpenMP是一种用于共享内存并行计算机的便携式编程接口,于1997年被计算机科学家采用为非正式标准,他们想要一个统一的模型来为共享内存系统提供基础程序。OpenMP现在被许多软件开发人员使用;与手工线程和MPI相比,它提供了显著的优势。使用OpenMP提供了并行编程概念的全面介绍和OpenMP的详细概述。使用OpenMP讨论了硬件开发,描述了OpenMP的应用,并将OpenMP与用于共享和分布式内存并行架构的其他编程接口进行了比较。它介绍了OpenMP的各个特性,提供了许多演示语言结构的使用和功能的源代码示例,并提供了编写高效OpenMP程序的技巧。它描述了如何在全面应用程序中使用OpenMP来实现大规模体系结构上的高性能,详细讨论了几个案例研究,并提供了深入的故障排除建议。它解释了如何将OpenMP显式地转换为多线程代码,并提供了关于OpenMP程序性能的有价值的幕后描述。最后,使用OpenMP考虑了可能影响OpenMP开发的趋势,从当前OpenMP 2.5的有利位置提供了对未来OpenMP 3.0可能性的一瞥。随着多核计算机使用的增加,对标准接口的全面介绍和概述的需求是明确的。使用OpenMP不仅为本科生和研究生提供了必要的参考,也为那些打算并行化现有代码或为共享内存计算机体系结构开发新的并行程序的专业人员提供了必要的参考。