《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通过采样来获得应用程序活动的数据。为了使用这个特性,需要插装应用程序以便使用事件来记录并行库活动,并且需要外部工具来获取调用堆栈。

相关文章
|
存储 SQL 分布式计算
MaxCompute产品使用合集之表中的某个列设置为string类型,并且超过了8M,该如何处理
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
308 8
|
开发框架 Android开发 开发者
移动应用开发中的跨平台策略与系统优化
在移动应用开发的广阔舞台上,跨平台策略和系统优化是两大核心议题。本文将深入探讨如何通过技术手段提升应用的跨平台性能和用户体验,同时确保系统的高效运行。我们将从Flutter框架的应用、Android和iOS平台的差异化处理,到系统资源管理和性能监测等方面进行详细阐述。文章旨在为开发者提供实用的指导和建议,帮助他们在不断变化的移动应用市场中保持竞争力。
|
机器学习/深度学习 搜索推荐 算法
基于深度学习的图书管理推荐系统(附python代码)
基于Keras的图书推荐系统利用深度学习的Embedding技术,根据用户评分预测高评分书籍。模型包括用户和书籍的Embedding层,concatenation和全连接层。通过训练集与测试集划分,使用adam优化器和MSE损失函数进行训练。程序展示了模型预测的图书ID和评分概率,以及实际推荐的Top 10书单。代码中包含数据预处理、模型训练与预测功能。
 基于深度学习的图书管理推荐系统(附python代码)
|
设计模式 Linux 编译器
【C++11】 线程库的使用(一)
【C++11】 线程库的使用(一)
281 0
|
JavaScript 前端开发
JavaScript编写幻灯片
JavaScript编写幻灯片
94 0
|
开发工具 git C++
VS Code配置git推送代码
在VS Code中使用git相关插件实现项目代码到远程仓库(github)的推送和拉取。
1104 2
VS Code配置git推送代码
|
Linux 数据安全/隐私保护 Windows
Linux权限
超级用户:可以再linux系统下做任何事情,不受限制(只有一个)
|
Linux 数据安全/隐私保护
【Rocky Linux】Rocky Linux 8.5版本全新图文安装教程并更换阿里镜像源等配置操作
【Rocky Linux】Rocky Linux 8.5版本全新图文安装教程并更换阿里镜像源等配置操作
3523 0
【Rocky Linux】Rocky Linux 8.5版本全新图文安装教程并更换阿里镜像源等配置操作