《OpenACC并行程序设计:性能优化实践指南》一 1.2 简单的任务并行示例

简介: 本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第1章,第1.2节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2 简单的任务并行示例

接下来的示例accTask.cpp演示如何在OpenACC设备上并行执行单个任务。
使用任务并行时必须小心,因为OpenACC设备可能有不利于发挥性能的性能约束。一般来说,最好所有的OpenACC线程在相同时刻执行相同的任务,这样并行任务可以很好地映射到GPU SIMD流多处理器和常见的多核处理器的向量单元。高级程序员希望使用OpenACC async()子句和流,这使他们能实现更复杂的任务并行。特别是,感兴趣的读者应该研究并行任务分解和依赖图。推荐阅读《并行计算导论》(Grama, Abshul, Karypis&Kumar, 2003),在网络上也有很多讨论和教程。
accTask.cpp如图1-9所示,假定内联方式声明task()函数,或将task函数与注记结合来告诉编译器这是OpenACC例程。

screenshot

screenshot

在主函数中唯一介绍的新概念是使用C++高精度时间类,用最小的滴答周期来报告时间以及task()函数时间。
图1-10提供了一个忙循环(busy-loop)的例子。

screenshot

这个函数利用OpenACC routine指令。OpenACC 2.0引入了#pragma acc routine,用来指导编译器编译设备区域内调用的设备端函数或子程序。worker子句告诉编译器例程内的任何代码和task内调用的其他例程将会在一个工作项内执行。使用C++ inline关键字包含短的代码。

相关文章
|
并行计算 异构计算
《OpenACC并行程序设计:性能优化实践指南》一 3.6 第一个并行PIConGPU实现
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第3章,第3.6节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1552 0
|
并行计算 异构计算
《OpenACC并行程序设计:性能优化实践指南》一 3.9 增加GPU任务并行
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第3章,第3.9节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1358 0
|
并行计算
《OpenACC并行程序设计:性能优化实践指南》一 3.11 小结
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第3章,第3.11节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1105 0
|
测试技术 异构计算
《OpenACC并行程序设计:性能优化实践指南》一 导读
这是一本关于并行编程的书,不仅仅介绍OpenACC语法或从文档中收集的信息,更介绍了如何编写实际的、高性能的以及可移植的程序,这些程序可以运行在从CPU到GPU的大量设备上。具体而言,书中演示了使用PGI、Cray和PathScale等供应商提供的编译器编译示例代码,并在Intel x86处理器、Cavium 96核64位ARMv8处理器芯片集和NVIDIA GPU上运行。
2266 0
|
异构计算
《OpenACC并行程序设计:性能优化实践指南》一 3.8 优化GPU内核
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第3章,第3.8节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1051 0
|
并行计算 安全 程序员
《OpenACC并行程序设计:性能优化实践指南》一 1.1 简单的数据并行循环
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第1章,第1.1节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3187 0
|
程序员
《OpenACC并行程序设计:性能优化实践指南》一 2.3 描述数据移动
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第2章,第2.3节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1325 0
|
测试技术 调度 C++
《OpenACC并行程序设计:性能优化实践指南》一 1.6 控制并行资源
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第1章,第1.6节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1286 0
|
并行计算 测试技术 API
《OpenACC并行程序设计:性能优化实践指南》一 3.4 通过代码插装准备性能测量
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第3章,第3.4节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1285 0
|
程序员 C++ 异构计算
《OpenACC并行程序设计:性能优化实践指南》一 2.2 描述并行度
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第2章,第2.2节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1400 0