首页> 外文会议>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.
机译:非阻塞算法是一类提供的算法,其提供了系统内的进度的保证。这些进度担保来自掺入其设计中的细粒度同步技术。有许多各种非阻塞设计和并发算法的实现。但是,性能和非阻塞算法设计决策之间的权衡差不多了解。测量非阻塞算法性能的最常见方法是分析一段时间内完成的操作数。不幸的是,这种粗粒度的性能分析方法无法捕获并解释非阻塞算法行为的许多细微差别。这可能导致对这种算法有缺陷的感知,这可能导致它们的误导。这项工作为分析非阻塞算法的设计和使用提供了一种细粒度的方法。为了支持这种分析,我们介绍一种方法,使用户能够模拟应用程序使用任意的非阻塞算法和从性能结果中提取富有识别信息的应用。为了更好地理解非阻塞算法的行为,我们提供了测量非阻塞算法中使用的关键同步和内存管理技术的有效性的度量。我们的分析将这些新指标与几个知名硬件指标相结合,以解释关键行为并开发新的见解。为了证明所提出的方法的有效性,我们将其整合在TEVEL框架内并在各种用例中分析了TEVEL的载体。我们的实验表明,通过增加未对准数据缓存访问,帮助机制对吞吐量产生负面影响。此外,通过研究不同度量之间的相关性,我们能够观察线程干扰对CPU指令和指令高速缓存失效的影响,然后链接完成此效果的工作减少。除了提供的信息外,这些度量还会显示出不影响正确性但导致的线程拥塞的实施错误。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号