首页> 外文会议>IEEE International Symposium on Real-Time Distributed Computing >A Methodology for Performance Analysis of Non-blocking Algorithms Using Hardware and Software Metrics
【24h】

A Methodology for Performance Analysis of Non-blocking Algorithms Using Hardware and Software Metrics

机译:使用硬件和软件指标的无阻塞算法性能分析的方法论

获取原文

摘要

Non-blocking algorithms are a class of algorithms that provide guarantees of progress within a system. These progress guarantees come from the fine-grained synchronization techniques incorporated into their design. There are a number of various non-blocking designs and implementations of concurrent algorithms. However, trade-offs between performance and non-blocking algorithm design decisions are poorly understood. The most common method to measure the performance of non-blocking algorithms is to analyze the number of operations completed over a period of time. Unfortunately, this coarse-grained approach for performance analysis is unable to capture and explain many of the nuances of the behavior of non-blocking algorithms. This can result in a flawed perception of such algorithms, which may lead to a misguided use of them. This work provides a fine-grained approach for the analysis of the design and use of non-blocking algorithms. To support this analysis, we introduce a methodology that enables a user to simulate an application's use of an arbitrary non-blocking algorithm and extract insightful information from the performance results. To better understand the behavior of non-blocking algorithms, we present metrics to measure the effectiveness of the key synchronization and memory management techniques used in non-blocking algorithms. Our analysis combines these new metrics with several well-known hardware metrics to explain key behaviors and develop new insights. To demonstrate the effectiveness of the proposed methodology, we integrate it within the Tervel framework and analyzed Tervel's vector in various use cases. Our experiments show that helping mechanisms negatively impact throughput by increasing misaligned data cache accesses. Furthermore, by studying the correlations between different metrics, we are able to observe the effect of thread interference on the CPU instructions and instruction cache invalidation, and then link the decrease in work completed to this effect. In addition to the provided information, these metrics revealed implementation errors that did not affect correctness but caused increased thread congestion.
机译:非阻塞算法是一类算法,可确保系统内的进度。这些进步保证来自其设计中包含的细粒度同步技术。并发算法有多种非阻塞设计和实现。但是,对性能和非阻塞算法设计决策之间的折衷了解很少。衡量非阻塞算法性能的最常见方法是分析一段时间内完成的操作数。不幸的是,这种用于性能分析的粗粒度方法无法捕获和解释非阻塞算法行为的许多细微差别。这可能会导致对此类算法的错误理解,从而可能导致对它们的错误使用。这项工作为分析非阻塞算法的设计和使用提供了一种细粒度的方法。为了支持此分析,我们引入了一种方法,使用户能够模拟应用程序对任意非阻塞算法的使用,并从性能结果中提取有洞察力的信息。为了更好地理解非阻塞算法的行为,我们提出了衡量非阻塞算法中使用的密钥同步和内存管理技术有效性的指标。我们的分析将这些新指标与几个著名的硬件指标结合起来,以解释关键行为并开发新见解。为了证明所提出方法的有效性,我们将其整合到Tervel框架中,并分析了各种使用案例中的Tervel向量。我们的实验表明,通过增加未对齐的数据缓存访问,帮助机制会对吞吐量产生负面影响。此外,通过研究不同指标之间的相关性,我们能够观察到线程干扰对CPU指令和指令高速缓存无效的影响,然后将完成的工作量减少与这种影响联系起来。除了提供的信息之外,这些指标还揭示了实现错误,这些错误不会影响正确性,但会导致线程拥塞加剧。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号