让缓存为图表分析工作
Making Caches Work for Graph Analytics
摘要:
现代硬件系统在运行大规模图形应用程序时严重未得到充分利用。虽然许多内存中的图形框架在优化这些应用程序方面取得了重大进展,但我们表明,通过大大提高缓存利用率,仍然可以在最快的框架上实现高达4 $\times$的加速。先前的系统已经从存储器/磁盘边界到高速缓存/DRAM边界应用了核外处理技术。然而,我们发现,盲目地应用这些技术是无效的,因为DRAM和缓存之间的性能差距要小得多。我们提出了两种技术,利用高速缓存的最小或没有指令开销。第一种是基于频率的聚类,将频繁访问的顶点分组在一起,以提高每个高速缓存行的利用率,而不会产生运行时开销。第二,CSR分段,分区图限制所有随机访问的缓存,使所有DRAM访问顺序,并合并分区结果使用一个非常低的开销缓存感知合并。这两种技术都可以在优化的图形框架上轻松实现。我们的技术结合起来,在最好的发布结果上,PageRank、标签传播和协同过滤的加速比高达4 $\times$,Betweenness Centrality的加速比高达2 $\times$
英文摘要:
Modern hardware systems are heavily underutilized when running large-scale graph applications. While many in-memory graph frameworks have made substantial progress in optimizing these applications, we show that it is still possible to achieve up to 4 $\times$ speedups over the fastest frameworks by greatly improving cache utilization. Previous systems have applied out-of-core processing techniques from the memory/disk boundary to the cache/DRAM boundary. However, we find that blindly applying such techniques is ineffective because of the much smaller performance gap between DRAM and cache. We present two techniques that take advantage of the cache with minimal or no instruction overhead. The first, frequency based clustering, groups together frequently accessed vertices to improve the utilization of each cache line with no runtime overhead. The second, CSR segmenting, partitions the graph to restrict all random accesses to the cache, makes all DRAM access sequential, and merges partition results using a very low overhead cache-aware merge. Both techniques can be easily implemented on top of optimized graph frameworks. Our techniques combined give speedups of up to 4 $\times$ for PageRank, Label Propagation and Collaborative Filtering, and 2 $\times$ for Betweenness Centrality over the best published results
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。