《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关键字包含短的代码。

相关文章
|
机器学习/深度学习 数据采集 人工智能
|
10月前
|
机器学习/深度学习 数据可视化 算法
Python与机器学习:使用Scikit-learn进行数据建模
本文介绍如何使用Python和Scikit-learn进行机器学习数据建模。首先,通过鸢尾花数据集演示数据准备、可视化和预处理步骤。接着,构建并评估K近邻(KNN)模型,展示超参数调优方法。最后,比较KNN、随机森林和支持向量机(SVM)等模型的性能,帮助读者掌握基础的机器学习建模技巧,并展望未来结合深度学习框架的发展方向。
Python与机器学习:使用Scikit-learn进行数据建模
|
存储 Java
【数据结构】二叉树重点知识和OJ题汇总(附有代码)
【数据结构】二叉树重点知识和OJ题汇总(附有代码)
292 0
|
12月前
|
前端开发
「Mac畅玩鸿蒙与硬件49」UI互动应用篇26 - 数字填色游戏
本篇教程将带你实现一个数字填色小游戏,通过简单的交互逻辑,学习如何使用鸿蒙开发组件创建趣味性强的应用。
312 20
「Mac畅玩鸿蒙与硬件49」UI互动应用篇26 - 数字填色游戏
|
人工智能 弹性计算 关系型数据库
学生免费领取阿里云服务器一年的方法,以及各种活动
学生可以免费领取阿里云服务器一年,新人可获2核4G,非新人2核2G。访问链接注册并完成学生认证,领取300元无门槛优惠券,购买轻量应用服务器。此外,还有多项活动可赢取实物奖品。
6312 2
|
测试技术
集成测试之自顶向下、自底向上、三明治集成
集成测试之自顶向下、自底向上、三明治集成
1869 0
集成测试之自顶向下、自底向上、三明治集成
|
存储 编解码 弹性计算
阿里云服务器计算型c5、c6、c7实例有什么区别?我们应该如何选择?
在我们选择阿里云服务器实例规格的时候,如果是选择计算型实例,会发现同样是计算型实例,有计算型c5、计算型c6和计算型c7可选(当然还有c8i、c8y等其他计算型实例可选),他们都属于企业级云服务器,都配有2核4G、4核8G和8核16G等处理器与内存比1:2的配置,那么它们之间有什么区别,下边就这三个实例各自的特点、网络、适用场景及最新活动价格来详细分析一下新手用户应该怎么选择。
阿里云服务器计算型c5、c6、c7实例有什么区别?我们应该如何选择?
|
存储 内存技术
屏幕为黑色yuv值怎么设置
屏幕为黑色yuv值怎么设置
556 0
|
弹性计算 运维 负载均衡
中国公有云网络边缘安全即服务第一! SECaaS云上落地
阿里云在报告中处于绝对领导者位置,营收和能力均位列第一。
1106 0
中国公有云网络边缘安全即服务第一! SECaaS云上落地
|
编解码 JSON 数据可视化
EO Browser——在线卫星影像查看最全影像和下载,可编程的影像云平台
EO Browser——在线卫星影像查看最全影像和下载,可编程的影像云平台
1794 0
EO Browser——在线卫星影像查看最全影像和下载,可编程的影像云平台