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

  1. 云栖社区>
  2. 华章计算机>
  3. 博客>
  4. 正文

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

华章计算机 2017-09-08 16:03:00 浏览957
展开阅读全文

1.2 简单的任务并行示例

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

网友评论

登录后评论
0/500
评论
华章计算机
+ 关注
所属云栖号: 华章计算机