This paper introduces the batch-parallel Compressed Packed Memory Array (CPMA), a compressed dynamic ordered batch-parallel set data structure based on the Packed Memory Array (PMA). Traditionally, batch-parallel sets are built on pointer-based data structures such as trees because pointer-based structures enable fast parallel unions via pointer manipulation. When compared to cache-optimized trees, PMAs were slower to update but faster to scan. The batch-parallel CPMA overcomes this tradeoff between updates and scans by optimizing for cache-friendliness. On average, the CPMA is faster than compressed PaC-trees, a state-of-the-art batch-parallel set library based on cache-optimized trees, by 1.2x on range queries and 3x on batch updates. We further evaluate the CPMA compared to compressed PaC-trees on a real-world application of dynamic graph processing. The CPMA is on average 1.2x faster on a suite of graph algorithms and 2x faster on batch inserts for graphs when compared with compressed PaC-trees.
翻译:摘要:本文提出批量并行压缩打包内存数组(CPMA),这是一种基于打包内存数组(PMA)的压缩型动态有序批量并行集合数据结构。传统上,批量并行集合基于树等指针型数据结构构建,因为指针型结构可通过指针操作实现快速并行合并。相较于缓存优化树,PMA的更新速度较慢但扫描更快。批量并行CPMA通过优化缓存友好性,克服了更新与扫描之间的权衡。平均而言,CPMA在范围查询上比当前最先进的基于缓存优化树的批量并行集合库压缩PaC树快1.2倍,在批量更新上快3倍。我们进一步在动态图处理的实际应用中评估CPMA与压缩PaC树的性能。在图算法套件测试中,CPMA平均比压缩PaC树快1.2倍,在图的批量插入操作中则快2倍。