《OpenACC并行程序设计:性能优化实践指南》一 导读

《OpenACC并行程序设计:性能优化实践指南》一 导读

前言

欢迎阅读本书,这是一本由浅入深的书籍,从初学者到高级开发人员,都可以通过本书了解OpenACC的相关知识。本书由世界各地的24位作者共同编著而成,他们在高度并行编程的教学和实践方面分享了自己的专业知识。书中的例子既有时效性又不会过时。每个章节都是自包含的,可用于自学,也可以作为课堂教学的一部分。

这是一本关于并行编程的书,不仅仅介绍OpenACC语法或从文档中收集的信息,更介绍了如何编写实际的、高性能的以及可移植的程序,这些程序可以运行在从CPU到GPU的大量设备上。具体而言,书中演示了使用PGI、Cray和PathScale等供应商提供的编译器编译示例代码,并在Intel x86处理器、Cavium 96核64位ARMv8处理器芯片集和NVIDIA GPU上运行。
性能和分析相辅相成,这也是为什么我们将开源代码和PGI分析器都包含在内。
自从2012年6月11日我第一次在Dr. Dobbs网站上看到“Easy GPU Parallelism with OpenACC”以来,OpenACC标准逐步升级,编译器技术逐渐成熟,发展速度令人惊讶。过去几年的突飞猛进意味着我们现在可以在大多数HPC站点上使用OpenACC,甚至免费提供的GNU编译器工具集也支持OpenACC。我们选择在中级和高级编程章节中提供实际应用示例,以方便读者实践,这是因为程序员需要解决实际问题,而不是解决课堂问题。同时,OpenACC还是一个很新的并行编程标准,书中的几个介绍性章节非常值得一读!

目录

第1章 从串行编程到并行编程
1.1 简单的数据并行循环
1.1.1 OpenACC内核构件与并行构件对比
1.1.2 OpenACC并行的多种形式
1.1.3 accFill_ex2运行时结果
1.2 简单的任务并行示例
1.3 Amdahl定律及其扩展
1.3.1 大O表示法和数据传输
1.3.2 accTask.cpp代码的扩展性
1.4 并行执行和竞争条件
1.5 无锁编程
1.6 控制并行资源
1.7 让生活更简单
1.8 参考文献

第2章 性能导向开发
2.1 测试代码:共轭梯度法
2.1.1 代码编译
2.1.2 初始测试
2.2 描述并行度
2.2.1 加速waxpby
2.2.2 加速dot
2.2.3 加速matvec
2.3 描述数据移动
2.4 优化循环
2.4.1 缩短向量长度
2.4.2 增加并行度
2.5 在多核系统中并行运行
2.6 小结

第3章 使用Score-P和Vampir分析混合应用性能
3.1 性能分析技术和术语
3.2 逐步性能提升
3.3 激光驱动电子束的粒子单元模拟
3.4 通过代码插装准备性能测量
3.5 在应用程序执行期间记录性能信息
3.6 第一个并行PIConGPU实现
3.7 释放主机进程
3.8 优化GPU内核
3.9 增加GPU任务并行
3.10 使用Score-P和Vampir记录OpenACC运行时事件
3.11 小结
3.12 参考文献

上一篇:用groovy采集网页数据


下一篇:vnx通过iscsi连接esxi主机,并挂载nfs和block