Recent decades have witnessed a surge in the development of concurrent data structures with an increasing interest in data structures implementing concurrent sets (CSets). 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 cases in which flawed microbenchmark design can lead to an inversion of performance results between two concurrent data structure implementations. We further derive a set of recommendations for best practices in the design and usage of concurrent data structure microbenchmarks and explore advanced features in the Setbench microbenchmark.
翻译:近几十年来,发展并行数据结构的情况急剧增加,对执行并行数据集(CSets)的数据结构的兴趣日益浓厚。微基准标记工具经常被用来评价和比较并行数据结构之间的性能差异。微基准的基本结构和设计本身在性能结果方面可以发挥隐藏但有影响的作用。然而,微基准设计的影响没有得到很好地调查。在这项工作中,我们举例说明了微型基准报告的并行数据结构绩效结果根据微基准实施细节而可能不同10-100x的情况。我们调查了导致三个流行的微基准之间性能差异的因素,并概述了在两个同时执行的数据结构之间,微基准设计有缺陷可能导致性能结果被逆转的案例。我们还为设计和使用并行数据结构微基准提出了一系列最佳做法建议,并探索Setbench 微基准中的先进特征。