4、采样助力并行程序性能分析与微基准测试

采样助力并行程序性能分析与微基准测试

在并行程序的性能分析领域,采样技术正发挥着至关重要的作用,同时,微基准测试工具也为深入了解硬件与软件的交互提供了有力支持。

采样技术在并行程序性能分析中的应用

在并行程序中,工作窃取和锁竞争是两个不同的问题。工作窃取运行时,窃取操作相对不频繁;而锁的获取和释放可能非常频繁,用原子增量扩展关键临界区可能会引入新的瓶颈。因此,用于工作窃取的技术不足以洞察锁竞争问题。为解决这些问题,我们使用锁本身作为精确归因的通信通道,目前主要关注自旋(非阻塞)锁。该技术基于以下三个规则:
1. 工作线程样本处理 :当工作线程收到样本时,增加线程本地工作指标。
2. 空闲线程样本处理 :当对等待锁的空闲线程进行采样时,原子性地增加与该锁关联的空闲指标。所有等待特定锁的线程收到的样本预期数量与等待该锁的时间成正比,且由于样本预期数量相对较少,原子增量的成本较低。
3. 锁释放处理 :当工作线程释放锁时,将所有空闲情况与锁释放点在其完整调用上下文中关联起来,即锁持有者释放锁时,原子性地将空闲计数器置为 0,从而精确确定锁释放点并准确归因其导致的空闲情况。

我们将这些技术应用于 MADNESS 量子化学应用。对于所研究的特定输入,MADNESS 带来了巨大挑战,它总共分配了 6500 万个不同的锁,在执行的任何特定时刻最多有 34 万个活动锁,每个线程每秒平均发出 3 万次锁获取请求。在监控开销仅为几个百分点的情况下,我们发现锁竞争的主要来源是向共享工作队列添加工作(未来任务)。

负载不平衡是基于批量同步并行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值