A Methodology For Performance Analysis Of Non-Blocking Algorithms Using Hardware And Software Metrics
Keywords
algorithm; correlation; data structure; lock-freedom; metrics; non-blocking; performance; synchronization; wait-freedom
Abstract
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.
Publication Date
7-18-2016
Publication Title
Proceedings - 2016 IEEE 19th International Symposium on Real-Time Distributed Computing, ISORC 2016
Number of Pages
43-52
Document Type
Article; Proceedings Paper
Personal Identifier
scopus
DOI Link
https://doi.org/10.1109/ISORC.2016.16
Copyright Status
Unknown
Socpus ID
84983392785 (Scopus)
Source API URL
https://api.elsevier.com/content/abstract/scopus_id/84983392785
STARS Citation
Izadpanah, Ramin; Feldman, Steven; and Dechev, Damian, "A Methodology For Performance Analysis Of Non-Blocking Algorithms Using Hardware And Software Metrics" (2016). Scopus Export 2015-2019. 4449.
https://stars.library.ucf.edu/scopus2015/4449