发表于2024-11-22
HPC领域资深专家推荐,中国极大OpenACC技术社区创建者撰写,不可多得的OpenACC技术专著
全面讲解OpenACC编程规范、语法的行为机理与设计动机,160个完整示例覆盖众多并行编程场景
中国极大OpenACC技术社区创建者撰写,为数不多系统介绍OpenACC的技术专著。全面讲解OpenACC编程规范、语法的行为机理与设计动机,160个完整示例覆盖众多并行编程场景。
全书分10章,按照并行程序开发步骤组织,建议第1遍顺序阅读。
第1章介绍主流加速器产品的硬件架构、主流并行编程模型等,以期读者对并行编程生态有全面了解。
第2章介绍OpenACC语言的设计思路,并列出OpenACC的主要语法供快速查阅。
第3章是本书核心,将大量计算并行化,这是程序提速的根本手段。用大量示例讲述两个计算构件parallel和kernels的行为特点,然后用它并行化Jacobi 迭代。
第4章介绍多种数据管理工具,包含结构化子语copy/create/present、结构化导语data、非结构化导语enter data/exit data/update/declare等,将加速器带来的数据移动时间减少。
第5章介绍routine导语,嵌套调用并行化自定义函数,用来开发大型程序。
第6章讲解用异步队列隐藏数据传输时间、调度多个加速器同时工作等高级特性。
第7章介绍OpenACC与CUDA C/CUDA Fortran和各类库的混合编程。
第8章是所有的运行时函数,以供读者编程查阅。
第9章指导部署开发环境,以便快速上手。
第10章介绍神威?太湖之光的编程模型及其对OpenACC的功能扩展。
何沧平,华为高级工程师,NVIDIA认证 CUDA培训师。曾任中科曙光HPC事业部工程师,完成全球天气预报程序并行化项目(加速30倍)和国家气象局天气预报程序并行化项目等,实战经验丰富。精通OpenACC、CUDA Fortran、CUDA C,熟悉OpenMP、MPI编程。2012年初开始关注研究OpenACC,陆续翻译OpenACC 1.0/2.0/2.0a/2.5语言规范以及《CUDA Fortran高效编程实践》,撰写大量在线技术教程,并建立中国*大OpenACC QQ交流群和资源网站,持续推广。
对于想要掌握OpenACC使用技巧和编程精髓的读者来说,本书是一本非常具有参考价值的学习教程。与传统的技术书籍相比,本书更加注重内容的可读性和易读性,逻辑清晰,内容全面准确,且更加注重编程实践,有大量的C/C++/Fortran完整代码实例,便于读者学习和实践。作为第1本中文的OpenACC技术书籍,可谓为国内的编程学习者带来了福音。
——漆锋滨 CCF常务理事,国家并行计算机工程技术研究中心研究员
前 言 2010年以来,中国超级计算机建设突飞猛进,欣欣向荣。一个原因是国力强盛,大力投资高新科技;另一个原因是整体科技水平提高,需求旺盛。天气预报、石油物探、工程仿真、基因测序等传统应用对计算资源的需求持续增长,以深度学习为代表的人工智能大爆发,资金雄厚的互联网公司对计算能力极度渴求。超级计算机的建设、应用主战场正在从教育科研单位转向科技企业。
为什么要写这本书面对浩如烟海的数据,CPU已经力不从心,因此世界领先的超级计算机都装备大量的加速器或者众核处理器。
目前主流加速器产品是NVIDIA GPU、AMD GPU和Intel至强Phi协处理器。三种加速器使用的编程语言分别为CUDA C/CUDA Fortran、OpenCL和MIC导语。加速器计算有4个困难。
一是CUDA/OpenCL等低级语言编程难度大,且需要深入了解加速器的硬件结构。而大部分的用户不是专业编程人员,学习一门新的编程技术将耗费大量时间。
二是加速器的计算模型与CPU差别很大,移植旧程序需要几乎完全重写。大量的旧程序在性能优化上已经千锤百炼,稳定性上也久经考验,完全重写是不可完成的任务。
三是低级编程语言开发的程序与硬件结构密切相关,硬件升级时必须升级软件,否则将损失性能。而硬件每隔两三年就升级一次,频繁的软件升级将给用户带来巨大负担。
四是投资方向难以选择。三种加速器均有自己独特的编程语言,且互不兼容。用户在投资建设硬件平台、选择软件开发语言时就会陷入困境,不知三种设备中哪个会在竞争中胜出。如果所选加速器将来落败,将会带来巨大损失;而犹豫不决又将错过技术变革的历史机遇。
OpenACC应运而生,可以克服这4个困难。OpenACC的编程机制是,程序员只在原程序中添加少量编译标识,编译器根据作者的意图自动产生低级语言代码。无须学习新的编程语言和加速器硬件知识,便能迅速掌握。只添加少量编译标识,不破坏原代码,开发速度快,既可并行执行又可恢复串行执行。在硬件更新时,重新编译一次代码即可,不必手工修改代码。OpenACC标准制定时就考虑了目前及将来的多种加速器产品,同一份代码可以在多种加速器设备上编译、运行,无成本切换硬件平台。掌握OpenACC后,编写程序省时、省力、省心。
本书特色笔者学习超算技术时有过苦泪:教材一上来就讲技术细节,只能机械地学习,不清楚这些算法、语法要解决什么问题,花费巨大精力后却发现解决不了自己的难题;新技术的资料往往是英文的,而且零碎,还不一定准确,收集、学习成本很高,求助无门;科学计算领域的祖师语言Fortran现在有点小众,新技术资料更少。为节省读者时间,本书特别重视易读性、易用性,具体有如下特点。
第一本中文OpenACC技术书籍,方便国内读者系统阅读,快速掌握。
全面、准确:本书覆盖OpenACC的所有特性,重要特性结合例子详细讲解,不常用的特性列出标准定义,方便查找。对特性、功能的描述均来自OpenACC规范,并用实例验证,确保准确。
大量的例子:书中的示例代码超过160个,不是代码片断,而是完整代码,拿来即用。全部由笔者编写、测试,运行无报错。
兼顾C/C++和Fortran:以C/C++为主来讲解,但所有的例子都有Fortran版的代码,Fortran专用特性会详细讲解。物理、气象等领域积累的优秀Fortran代码可以借此移植到新硬件上,重焕生机。
阅读轻松:按照并行程序的编写、调优顺序,先交代各阶段面临的问题,然后自然引入OpenACC提供的解决办法,最后实测验证效果。一切顺理成章,读者不会有云里雾里的感觉。
读者对象科学家:迅速改造旧程序,快速编写新的原型程序验证算法、理论,将更多的时间投入到高价值的科研创新中去。
企业程序员:一套程序适配多种运行平台,维护简单;性能敏感的部分用CUDA等低层语言编写,性能不敏感部分用OpenACC编写,相互配合,兼得程序性能和开发效率。
本科生、研究生:花最少的时间掌握一门计算工具,省出时间学习更多的知识。
如何阅读本书第1章介绍超级计算技术的发展趋势和并行编程概况,可以从中了解OpenACC的作用。没有CUDA C基础的读者能够掌握基本概念,便于深入理解OpenACC的并行化技术。第2章介绍OpenACC语言的设计思路。第3~4章是本书的核心,将计算部分并行化,并将数据传递时间减到最少。至此,读者已经能够编写性能良好的OpenACC程序。第5~7章介绍高级并行技术,以进行极致性能优化,以及与CUDA C/CUDA Fortran和各类库的混合编程。第8章给出OpenACC规定的所有运行时例程,不用细读,用到时再参考。第9章指导部署开发环境,以便快速上手。
勘误和支持本人水平有限,错误与疏漏在所难免,恳请批评指正。联系笔者请发送电子邮件至hpcfan@foxmail.com。更多技术资源请访问www.gpujisuan.com。技术交流QQ群284876008(将满)、564520462,欢迎加入。
致谢感谢国家并行计算机工程技术研究中心漆锋滨老师撰写第10章,并为本书作序。感谢PGI美女工程师王珍、帅气工程师仰琎歆、Daniel Tian、资深专家Mathew Colgrove的技术支持。感谢机械工业出版社的策划编辑高婧雅尽心协力。
OpenACC并行编程实战 下载 mobi pdf epub txt 电子书 格式 2024
OpenACC并行编程实战 下载 mobi epub pdf 电子书书不错
评分书不错
评分不错~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
评分实用的拓展书
评分jjfjfjfjcnncnvnvnnvnvnv
评分不错~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
评分实用的拓展书
评分很好的!!!!
评分很好的!!!!
OpenACC并行编程实战 mobi epub pdf txt 电子书 格式下载 2024