Triangle Counting (TC) is a procedure that involves enumerating the number of triangles within a graph. It has important applications in numerous fields, such as social or biological network analysis and network security. TC is a memory-bound workload that does not scale efficiently in conventional processor-centric systems due to several memory accesses across large memory regions and low data reuse. However, recent Processing-in-Memory (PIM) architectures present a promising solution to alleviate these bottlenecks. Our work presents the first TC algorithm that leverages the capabilities of the UPMEM system, the first commercially available PIM architecture, while at the same time addressing its limitations. We use a vertex coloring technique to avoid expensive communication between PIM cores and employ reservoir sampling to address the limited amount of memory available in the PIM cores' DRAM banks. In addition, our work makes use of the Misra-Gries summary to speed up counting triangles on graphs with high-degree nodes and uniform sampling of the graph edges for quicker approximate results. Our PIM implementation surpasses state-of-the-art CPU-based TC implementations when processing dynamic graphs in Coordinate List format, showcasing the effectiveness of the UPMEM architecture in addressing TC's memory-bound challenges.
翻译:三角形计数(TC)是一种统计图中三角形数量的过程,在社交网络分析、生物网络分析和网络安全等多个领域具有重要应用。TC属于内存密集型工作负载,由于需要跨大内存区域进行多次内存访问且数据重用率低,传统以处理器为中心的系统中难以高效扩展。然而,近期出现的处理内存(PIM)架构为缓解这些瓶颈提供了有前景的解决方案。本研究提出了首个利用UPMEM系统(首个商用PIM架构)能力的TC算法,同时克服了其局限性。我们采用顶点着色技术避免PIM核心间的昂贵通信,并使用水库采样方法应对PIM核心DRAM存储容量有限的问题。此外,本研究还利用Misra-Gries摘要加速处理含高度数节点图的三角形计数,并通过图边均匀采样快速获得近似结果。在Coordinate List格式动态图处理中,我们的PIM实现超越了当前最先进的CPU版TC实现,充分展示了UPMEM架构应对TC内存瓶颈挑战的有效性。