Performance Anomalies in Concurrent Data Structure Microbenchmarks

The past decade has witnessed a surge in the development of concurrent data structures with increasing interest in data structures implementing concurrent sets. Microbenchmarking tools are frequently utilized to evaluate and compare the performance differences across concurrent data structures. The underlying structure and design of the microbenchmarks themselves can play a hidden but influential role in performance results, however, the impact of microbenchmark design has not been well investigated. In this work, we illustrate instances where concurrent data structure performance results reported by a microbenchmark can vary 10-100x depending on the microbenchmark implementation details. We investigate factors leading to performance variance across three popular microbenchmarks and outline case studies in which flawed microbenchmark architectures can lead to an inversion of performance results between two concurrent data structure implementations. We further derive a prescriptive approach for best practices in the design and utilization of concurrent microbenchmarks.
View on arXiv