[论文解读] Efficient and Scalable Graph Pattern Mining on GPUs
G 2 Miner 是一种新颖的多GPU图模式挖掘框架,通过结合模式感知、输入感知和架构感知优化,实现了高效且可扩展的性能。与最先进的单GPU系统相比,它将图模式挖掘(GPM)工作负载的处理速度提升了最高7.2倍,并在V100 GPU上相比基于CPU的系统实现了48.3倍的加速,同时在8块GPU上实现了线性扩展,支持超越以往GPU系统的大规模图和模式。
Graph Pattern Mining (GPM) extracts higher-order information in a large graph by searching for small patterns of interest. GPM applications are computationally expensive, and thus attractive for GPU acceleration. Unfortunately, due to the complexity of GPM algorithms and parallel hardware, hand optimizing GPM applications suffers programming complexity, while existing GPM frameworks sacrifice efficiency for programmability. Moreover, little work has been done on GPU to scale GPM computation to large problem sizes. We describe G2Miner, the first Graph Pattern Mining (GPM) framework that runs on multiple GPUs. G2Miner uses pattern-aware, input-aware and architecture-aware search strategies to achieve high efficiency on GPUs. To simplify programming, it provides a code generator that automatically generates pattern-aware CUDA code. G2Miner flexibly supports both breadth-first search (BFS) and depth-first search (DFS) to maximize memory utilization and generate sufficient parallelism for GPUs. For the scalability of G2Miner, we use a customized scheduling policy to balance work among multiple GPUs. Experiments on a V100 GPU show that G2Miner achieves average speedups of 5.4x and 7.2x over two state-of-the-art single-GPU systems, Pangolin and PBE, respectively. In the multi-GPU setting, G2Miner achieves linear speedups from 1 to 8 GPUs, for various patterns and data graphs. We also show that G2Miner on a V100 GPU is 48.3x and 15.2x faster than the state-of-the-art CPU-based system, Peregrine and GraphZero, on a 56-core CPU machine.
研究动机与目标
- 解决现有GPU图模式挖掘(GPM)框架在同时优化模式、输入和硬件特性方面缺乏高效性、可扩展性和可编程性的不足。
- 克服现有GPU GPM系统存在的局限性,这些系统要么为可编程性牺牲效率,要么因内存和负载不平衡问题而无法扩展至大规模图和模式。
- 通过整合模式感知剪枝、输入感知内存估算和GPU架构感知并行化等整体优化策略,实现在GPU上高性能的GPM。
- 通过自动CUDA代码生成器提供用户友好的编程模型,隐藏GPU编程复杂性,使非专家用户也能轻松使用高性能GPM。
- 通过定制化的工作负载调度策略实现多GPU的线性可扩展性,支持处理以往在GPU上不可行的大规模图和复杂模式。
提出的方法
- 设计一种模式感知的搜索策略,根据模式结构动态选择BFS或DFS,以平衡内存使用和并行性。
- 实现一个代码生成器,自动生成优化后的、模式感知的CUDA内核,抽象低级GPU编程,提升开发效率。
- 引入两级并行模型,其中每个warp执行同步的DFS遍历,减少线程发散,提高warp执行效率。
- 采用SIMD感知的GPU原语和内存优化的数据结构,降低内存占用并提升内存带宽利用率。
- 应用输入感知优化,如基于度数的内存估算和标签分布分析,以预测最坏情况下的内存使用量,避免动态内存分配。
- 设计定制化的多GPU任务调度器,通过分析图和模式特征,在GPU之间均衡工作负载,实现从1到8块GPU的线性加速。
实验结果
研究问题
- RQ1GPU-based GPM框架能否通过联合优化模式结构、输入图特征和GPU架构,同时实现高性能和可编程性?
- RQ2DFS-based GPM算法如何高效映射到GPU上,以避免线程发散和内存瓶颈,同时保留剪枝机会?
- RQ3GPU-based GPM系统在多GPU上的可扩展性如何?需要何种调度策略以维持负载均衡和线性加速?
- RQ4在统一框架中结合模式感知剪枝、输入感知内存估算和架构感知优化,与现有系统相比能带来多大性能提升?
- RQ5GPU-based系统能否在大规模图和复杂模式上超越最优化的CPU-based GPM系统,性能提升幅度如何?
主要发现
- 在V100 GPU上,G 2 Miner相较于最先进的单GPU系统Pangolin和PBE,分别实现了5.4倍和7.2倍的加速。
- 在56核CPU机器上,G 2 Miner在单块V100 GPU上的性能比Peregrine快48.3倍,比GraphZero快15.2倍,充分展现了GPU加速的显著优势。
- G 2 Miner能够在Friendster等包含十亿条边的大规模图上支持8-团模式挖掘,而Pangolin因内存不足错误而失败,凸显其在大规模输入上的可扩展性。
- G 2 Miner在不同模式和数据图上,从1到8块GPU实现了线性加速,表明其工作负载分配和负载均衡策略有效。
- G 2 Miner中的warp执行效率超过80%,显著高于Pangolin的约40%,这得益于优化的warp中心集合操作和更少的线程发散。
- 仅启用计数剪枝优化时,G 2 Miner的性能平均提升6.2倍;即使在此优化下,G 2 Miner仍比Peregrine快41.1倍,充分证明其架构优势。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。