[论文解读] Efficient Processing of Very Large Graphs in a Small Cluster
GraphD 是一种类似 Pregel 的系统,通过在本地磁盘上流式传输边和消息,并将计算与通信重叠,实现在小型集群上对超大规模图的高效处理。它通过 ID 重编码和一种新型跳过函数,消除了昂贵的外部内存操作,实现了接近内存内性能,每台机器仅需 O(|V|/n) 的内存,相比现有外存系统性能提升数个数量级。
Inspired by the success of Google's Pregel, many systems have been developed recently for iterative computation over big graphs. These systems provide a user-friendly vertex-centric programming interface, where a programmer only needs to specify the behavior of one generic vertex when developing a parallel graph algorithm. However, most existing systems require the input graph to reside in memories of the machines in a cluster, and the few out-of-core systems suffer from problems such as poor efficiency for sparse computation workload, high demand on network bandwidth, and expensive cost incurred by external-memory join and group-by. In this paper, we introduce the GraphD system for a user to process very large graphs with ordinary computing resources. GraphD fully overlaps computation with communication, by streaming edges and messages on local disks, while transmitting messages in parallel. For a broad class of Pregel algorithms where message combiner is applicable, GraphD eliminates the need of any expensive external-memory join or group-by. These key techniques allow GraphD to achieve comparable performance to in-memory Pregel-like systems without keeping edges and messages in memories. We prove that to process a graph G=(V, E) with n machines using GraphD, each machine only requires O(|V|/n) memory space, allowing GraphD to scale to very large graphs with a small cluster. Extensive experiments show that GraphD beats existing out-of-core systems by orders of magnitude, and achieves comparable performance to in-memory systems running with enough memories.
研究动机与目标
- 解决内存图处理系统在处理超大规模图时因内存占用过大而带来的可扩展性限制。
- 克服现有外存系统依赖昂贵的外部内存操作(如连接和分组聚合)所导致的低效问题。
- 在仅每轮迭代中少数顶点活跃的外存环境中,实现稀疏计算工作负载的高效处理。
- 设计一种系统,通过本地磁盘缓冲完全重叠计算与通信,最小化标准集群中的 I/O 和网络瓶颈。
- 在每台机器仅使用 O(|V|/n) 内存的前提下,实现与内存内系统相当的性能,从而可在普通计算资源上部署。
提出的方法
- GraphD 直接从磁盘流式传输边和消息,避免将完整图和消息集存储在内存中。
- 它使用一种新型跳过函数(skip(num_items)),通过跳过未激活的顶点,高效处理稀疏计算工作负载,而无需加载它们。
- 通过在本地磁盘上缓冲传出消息,将磁盘 I/O 与网络通信重叠,隐藏 I/O 延迟于通信时间之内。
- 对于支持消息合并器的算法,GraphD 采用 ID 重编码,消除对外部内存归并排序或分组聚合操作的依赖。
- 通过优化数据访问模式,最小化随机访问,最大化顺序 I/O 带宽。
- 该系统专为通过千兆以太网连接的集群设计,优化了低网络带宽和高 I/O 效率。
实验结果
研究问题
- RQ1能否在不将整个图和消息集保留在主内存中的前提下,使类似 Pregel 的系统在大规模图上实现接近内存内性能?
- RQ2如何使外存图处理在仅少数顶点活跃的稀疏计算工作负载中更加高效?
- RQ3能否有效利用磁盘流式传输与通信重叠,以最小化标准集群环境中的 I/O 和网络瓶颈?
- RQ4ID 重编码在多大程度上可消除外存图处理中归并排序和分组聚合等昂贵外部内存操作的需求?
- RQ5GraphD 在不同图工作负载和集群配置下,与内存内系统及现有外存系统相比,性能如何?
主要发现
- GraphD 相较于现有外存系统性能提升数个数量级,尤其在 SSSP 和 BFS 等稀疏工作负载上表现突出。
- 在 WebUK 图上,GraphD 的超步时间低于 0.03 秒(0.02–0.03 秒),而 Pregelix 每个超步的固定开销至少为 35 秒,使其性能慢于 GraphD 超过 1000 倍。
- X-Stream 在 WebUK 上运行一天也未能完成,原因是每轮迭代均需流式传输所有边,导致 I/O 开销过高,凸显其在长周期稀疏算法中的低效性。
- 在 BTC 和 WebUK 上,当消息数量较少时,GraphD 的 IO-Recoding 模式优于 IO-Basic 模式,原因在于减少了数组管理开销。
- GraphD 实现了与内存内 Pregel 类系统相当的性能,即使在后者拥有充足内存的情况下,也证明了其高效性和可扩展性。
- 该系统每台机器仅需 O(|V|/n) 内存,即可在小型集群和普通硬件上处理超大规模图(如 ClueWeb,400GB 以上)。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。