《OpenACC并行程序设计:性能优化实践指南》一 第2章 性能导向开发

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

第2章

性能导向开发
Jeff Larkin
美国加利福尼亚州圣克拉拉县NVIDIA公司
本章的目的是通过一个性能测试应用的加速来初步了解OpenACC编程方法。读者将学习如何添加OpenACC导语以及如何进行代码性能调优,进而逐步提升应用的性能。本章最后,示例程序将从串行代码改进为高性能并行代码。该并行代码可以运行在图形处理器(GPU)加速器和多核处理器(CPU)上。
阅读本章后,读者将会理解以下内容:
OpenACC内核指令
OpenACC数据指令和子句
PGProf性能调试器的使用
OpenACC标准三层并行模型
数据依赖
形如OpenACC之类的编译器导语是对标准编程语言的扩展,可以在较高的层次向编译器传达一系列显式信息。例如,OpenACC提供了显式表达循环并行特性和分离式物理存储器间数据移动的机制,传统的C、C++或Fortran编程语言均不具备这一能力。而OpenACC与这些传统编程语言良好耦合,恰好完美地补充了它们的不足之处。程序员通常逐步地向现存代码添加导语,优先向加速“热点”函数和循环应用导语,之后再改进其他次要代码部分。性能导向开发是一种利用性能分析工具指引程序员逐步改善程序性能的技术。性能导向开发能够告知程序员应用代码中哪部分加速后能够获得更大的性能提升。本章中,使用PGI(The Portland Group)编译器和PGPROF性能分析工具对一段测试代码进行逐步加速与改进。本章最后,将对一系列测试代码进行并行化。这里,完全使用OpenACC完成这些任务。
完成本章所需要的前提条件:一套可以运行和生成可执行程序的OpenACC编译器(本章中的示例将使用NVIDIA OpenACC开发包);读者需要能够阅读、理解并编译C或Fortran代码;读者需要能够运行OpenACC编译器生成的可执行程序。

相关文章
|
资源调度 Java 流计算
flink yarn-per-job提交报错
flink yarn-per-job提交这个是什么问题吗,主机端口都是正常的,就报了拒绝连接?image.png 一提交到yarn就报这个错,然后失败,提交命令 flink run -t yarn-per-job -c app.dwm.UVFilterDetail /root/gmall_flink/flink_app/gmall-start-try-self-do-1.0-SNAPSHOT-jar-with-dependencies.jar,yarn-session提交是正常的,就per-job有问题?
271 1
|
机器学习/深度学习 人工智能 监控
|
数据采集 存储 数据安全/隐私保护
CDGA|数据治理:自上而下与自下而上的双重策略
数据治理是一个复杂而长期的过程,需要企业从多个方面入手进行综合治理。自上而下和自下而上的双重策略可以相互补充、相互促进,共同推动企业数据治理工作的深入开展。在实践中,企业需要根据自身实际情况选择合适的策略和方法,确保数据治理工作的有效性和可持续性。
|
缓存 JavaScript
vue 页面缓存 keep-alive(含配置清除页面缓存 exclude,局部缓存,动态缓存,路由控制缓存 $route.meta.keepAlive)
vue 页面缓存 keep-alive(含配置清除页面缓存 exclude,局部缓存,动态缓存,路由控制缓存 $route.meta.keepAlive)
1645 0
|
PHP
30 绘制三类图例
路老师在知乎上分享了PHP语言的知识,旨在帮助大家入门并深入理解PHP。本文介绍了如何使用JpGraph库创建柱形图、折线图和3D饼图,包括详细的代码示例和步骤说明。
124 2
|
JavaScript 测试技术 API
Jest进阶:测试 Vue 组件
Jest进阶:测试 Vue 组件
|
Kubernetes 负载均衡 安全
ECI Pod概述
ECI能为Kubernetes提供基础的容器Pod运行环境
568 5
|
存储 弹性计算 大数据
阿里云服务器是什么?优势、功能和应用场景详细介绍
阿里云服务器是什么?优势、功能和应用场景详细介绍,云服务器租用价格、云服务器使用场景及限制说明,阿里云服务器网分享云服务器ECS介绍、个人和企业免费试用、云服务器活动、云服务器ECS规格、优势、功能及应用场景详细说明
2346 0
|
存储 关系型数据库 MySQL
手把手教你使用Django如何连接Mysql
手把手教你使用Django如何连接Mysql
1984 0
|
SQL 存储 索引
什么是慢查询?如何优化?
什么是慢查询?如何优化?
731 0