《OpenACC并行程序设计:性能优化实践指南》一 3.4 通过代码插装准备性能测量

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

3.4 通过代码插装准备性能测量

为了获得非常详细的性能数据,需要修改测试应用程序源代码,以便将事件推送到性能监视器。这个过程称为插装。Score-P使用编译器插装,这意味着使用编译器额外选项来生成所有函数入口和出口,Score-P处理这些出/入口的回调。这些回调是之前介绍的事件。这当然需要编译器支持回调注入,而当前大多数编译器都会这么做。
可以使用提供的性能工具接口、包装库或源码转换来自动插装到所有的并行范例(MPI、OpenMP、Pthreads、OpenACC、CUDA、OpenCL、OpenSHMEM或任何组合)中。因此Score-P可以直接记录所有活动,而不需要手动修改测试应用程序的源代码。
为了调用编译器插装,Score-P为大多数常见编译器提供了编译器包装器。这些包装器通过编译器插装必要的回调来添加正确的标志。称为scorep的包装器脚本提供对这些包装器的访问,如图3-4所示。

screenshot

在链接步骤中,可能有必要在Score-P包装器未正确检测到加速器的情况下显示指定加速器。对于PIConGPU,必须告知链接整个应用程序的Score-P MPI编译器包装器目标是CUDA应用程序,以便将相应的CUDA监视器插件链接到应用程序中来记录CUDA活动。即将发布的Score-P 3.0版本还将包括OpenACC事件记录,这要通过OpenACC性能工具API来实现。这需要编译器支持这些API,同时可能还要传递--penacc参数给Score-P编译器包装器。
上面的例子说明了代码插装的一般原理。对于PIConGPU,代码装入稍微复杂一些。首先,由于不想记录诸如构造和析构函数,因此编译这些函数时不会插装。此外,为编译器插装提供过滤列表,插装时将排除这些过滤函数。一般来说,根据需求添加底层细节代码,以尽可能少的运行时开销来捕获每个周期里的四个阶段。
Score-P 2.0通过采样来获得应用程序活动的数据。为了使用这个特性,需要插装应用程序以便使用事件来记录并行库活动,并且需要外部工具来获取调用堆栈。

相关文章
|
测试技术 异构计算
《OpenACC并行程序设计:性能优化实践指南》一 导读
这是一本关于并行编程的书,不仅仅介绍OpenACC语法或从文档中收集的信息,更介绍了如何编写实际的、高性能的以及可移植的程序,这些程序可以运行在从CPU到GPU的大量设备上。具体而言,书中演示了使用PGI、Cray和PathScale等供应商提供的编译器编译示例代码,并在Intel x86处理器、Cavium 96核64位ARMv8处理器芯片集和NVIDIA GPU上运行。
2196 0
|
并行计算
《OpenACC并行程序设计:性能优化实践指南》一 3.11 小结
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第3章,第3.11节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1083 0
《OpenACC并行程序设计:性能优化实践指南》一 3.12 参考文献
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第3章,第3.12节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
707 0
《OpenACC并行程序设计:性能优化实践指南》一 1.7 让生活更简单
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第1章,第1.7节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1073 0
《OpenACC并行程序设计:性能优化实践指南》一 2.6 小结
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第2章,第2.6节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1199 0
|
程序员
《OpenACC并行程序设计:性能优化实践指南》一 2.3 描述数据移动
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第2章,第2.3节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1274 0
|
并行计算 异构计算
《OpenACC并行程序设计:性能优化实践指南》一 3.6 第一个并行PIConGPU实现
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第3章,第3.6节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1510 0
|
测试技术
《OpenACC并行程序设计:性能优化实践指南》一 2.1 测试代码:共轭梯度法
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第2章,第2.1节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1650 0
《OpenACC并行程序设计:性能优化实践指南》一 第1章 从串行编程到并行编程
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第1章,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1176 0
|
异构计算
《OpenACC并行程序设计:性能优化实践指南》一 2.4 优化循环
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第2章,第2.4节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1201 0