Skip to main content
QUICK REVIEW

[论文解读] EmptyHeaded: A Relational Engine for Graph Processing

Christopher R. Aberger, Susan Tu|arXiv (Cornell University)|Mar 9, 2015
Graph Theory and Algorithms参考文献 62被引用 13
一句话总结

EmptyHeaded 是一种高性能的关系型图处理引擎,通过广义超树分解(GHDs)、SIMD 优化的数据布局以及一种新颖的查询优化器,利用最坏情况最优的连接算法实现底层引擎性能。它在图处理工作负载(如 PageRank 和 SSSP)上,性能优于高阶引擎达三个数量级,并与低阶引擎(如 Galois)相当或更优。

ABSTRACT

There are two types of high-performance graph processing engines: low- and high-level engines. Low-level engines (Galois, PowerGraph, Snap) provide optimized data structures and computation models but require users to write low-level imperative code, hence ensuring that efficiency is the burden of the user. In high-level engines, users write in query languages like datalog (SociaLite) or SQL (Grail). High-level engines are easier to use but are orders of magnitude slower than the low-level graph engines. We present EmptyHeaded, a high-level engine that supports a rich datalog-like query language and achieves performance comparable to that of low-level engines. At the core of EmptyHeaded's design is a new class of join algorithms that satisfy strong theoretical guarantees but have thus far not achieved performance comparable to that of specialized graph processing engines. To achieve high performance, EmptyHeaded introduces a new join engine architecture, including a novel query optimizer and data layouts that leverage single-instruction multiple data (SIMD) parallelism. With this architecture, EmptyHeaded outperforms high-level approaches by up to three orders of magnitude on graph pattern queries, PageRank, and Single-Source Shortest Paths (SSSP) and is an order of magnitude faster than many low-level baselines. We validate that EmptyHeaded competes with the best-of-breed low-level engine (Galois), achieving comparable performance on PageRank and at most 3x worse performance on SSSP.

研究动机与目标

  • 通过支持高阶表达能力而不牺牲性能,弥合高阶图查询引擎(如 SQL、Datalog)与低阶图处理系统之间的性能差距。
  • 通过利用理论上最优的连接算法,缩小传统关系型引擎与专用图引擎之间的渐近性能差距和常数因子差距。
  • 设计一种新颖的引擎架构,支持最坏情况最优的多路连接,同时在现代 SIMD 并行硬件上实现高性能。
  • 证明基于广义超树分解(GHDs)的关系型引擎可以在标准图工作负载上超越高阶和低阶图处理系统。

提出的方法

  • 使用广义超树分解(GHDs)作为逻辑查询计划表示方式,而非传统的关系代数,从而为复杂图模式实现最坏情况最优的连接处理。
  • 将 GHDs 编译为涉及集合交集和循环的高效代码序列,从高阶 Datalog 类查询自动生成优化的执行计划。
  • 实现一种新颖的查询优化器,根据数据倾斜和访问模式选择最优的算法和布局策略。
  • 设计针对单指令多数据(SIMD)并行性的异构数据布局,以加速连接处理中至关重要的集合交集操作。
  • 集成 SIMD 优化的集合交集算法(如改进的 SIMDShuffling 和 SIMDGalloping),在图工作负载上保持正确性和高性能。
  • 在运行时自动处理低阶决策(如数据布局和算法选择),以适应数据倾斜,提升多样化图查询的性能。

实验结果

研究问题

  • RQ1通过利用最坏情况最优的连接算法,高阶关系型引擎是否能够实现与低阶图处理引擎相当的性能?
  • RQ2广义超树分解(GHDs)在多大程度上能够支持复杂图模式匹配的高效、理论最优的查询计划?
  • RQ3SIMD 优化的数据布局和集合交集算法在加速关系型图引擎中的多路连接方面有多有效?
  • RQ4基于关系型原理的统一引擎是否能够在标准图工作负载上超越高阶和低阶图处理系统?
  • RQ5为弥合关系型引擎与专用图引擎之间的性能差距,同时保持高阶查询表达能力,需要哪些架构创新?

主要发现

  • 在图模式查询、PageRank 和单源最短路径(SSSP)任务上,EmptyHeaded 的性能优于 LogicBlox 和 SociaLite 等高阶引擎三个数量级以上。
  • 在 PageRank 任务上,EmptyHeaded 的性能与最佳低阶引擎 Galois 相当,展现出具有竞争力的渐近效率。
  • 在 SSSP 任务上,EmptyHeaded 的性能最慢不超过 Galois 的 3 倍,表明尽管在某些情况下存在理论次优性,其实际性能依然出色。
  • 在图模式查询上,EmptyHeaded 相较于 Ligra 和 Green-Marl 等专用低阶引擎实现了高达 60 倍的加速,凸显了其基于 GHD 的优化策略的有效性。
  • SIMD 优化的数据布局和集合交集技术使性能相比标准方法提升了三个数量级,验证了其架构设计的合理性。
  • 查询优化器能够根据数据倾斜自适应地调整布局和算法选择,从而在多样化图工作负载上持续实现性能提升。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。