一句话:提出 Kimbap 分布式图分析框架,支持任意节点属性读写,并通过图分区感知的节点属性映射优化高并发稀疏归约。
现有分布式图分析系统(如 Gemini、Gluon、SympleGraph)多只支持基于相邻邻居属性迭代更新的模型,难以表达 Louvain 和 Shiloach-Vishkin 等算法。Kimbap 是支持通用以顶点为中心算法的分布式图分析框架,允许节点读取和写入图中任意节点的属性;编译器自动生成通信代码,运行时在分布式内存上组织并同步节点属性对。其核心是面向高并发稀疏归约优化的分布式节点属性映射,采用图分区感知的稀疏表示并避免线程冲突,消除了类 Pregel 系统支持通用顶点程序时的瓶颈。在最多 256 台机器(约 12000 线程)的 CPU 集群上,Kimbap 的 Louvain 平均比最优手工实现快 4 倍,并对两系统均可表达的算法匹配或超越当前最优系统。
Most distributed graph analytics systems such as Gemini, Gluon, and SympleGraph support a computational model in which node properties are updated iteratively using properties of adjacent neighbors of those nodes. However, there are many algorithms that cannot be expressed in this model, such as the Louvain algorithm for community detection and the Shiloach-Vishkin algorithm for connected components. These algorithms may be more efficient or may produce better quality output than simpler algorithms that can be expressed using updates only from adjacent vertices. This paper describes Kimbap, a distributed graph analytics programming framework, and its high-performance implementation that addresses this problem. Kimbap supports general vertex-centric algorithms by permitting the computation at a node to read and write properties of any node in the graph, not just its adjacent neighbors. The programming model allows programmers to specify iterative graph analytics applications, while the Kimbap compiler automatically generates the required communication code, and the Kimbap runtime organizes and synchronizes node-property pairs across the distributed-memory machines. The underlying system uses a distributed node-property map that is optimized for highly concurrent sparse reductions by using a graph-partition-aware sparse representation and by avoiding thread conflicts, thereby eliminating a major bottleneck that throttles performance in systems like Pregel that also support general vertex programs. Our experiments on CPU clusters with up to 256 machines (roughly 12000 threads total) show that (1) Louvain clustering algorithm in Kimbap is on average 4× faster than the state-of-the-art hand-optimized implementation for the same algorithm and (2) Kimbap matches or outperforms the state-of-the-art distributed graph analytics system for algorithms that can be expressed in both systems.