EmptyHeaded:一种用于图处理的关系引擎
数据库
2017-01-06 v7
摘要
高性能图处理引擎分为两类:低级引擎和高级引擎。低级引擎(Galois、PowerGraph、Snap)提供优化的数据结构和计算模型,但要求用户编写低级命令式代码,因此效率负担落在用户身上。在高级引擎中,用户使用类似Datalog(SociaLite)或SQL(Grail)的查询语言编写代码。高级引擎易于使用,但比低级图引擎慢数个数量级。我们提出EmptyHeaded,一种支持丰富类Datalog查询语言的高级引擎,其性能可与低级引擎相媲美。EmptyHeaded设计的核心是一类新的连接算法,这些算法满足强理论保证,但迄今为止尚未达到专用图处理引擎的性能水平。为了实现高性能,EmptyHeaded引入了一种新的连接引擎架构,包括新颖的查询优化器和利用单指令多数据(SIMD)并行的数据布局。凭借此架构,EmptyHeaded在图模式查询、PageRank和单源最短路径(SSSP)上比高级方法快多达三个数量级,并且比许多低级基线快一个数量级。我们验证了EmptyHeaded与最先进的低级引擎(Galois)竞争,在PageRank上性能相当,在SSSP上性能最多差3倍。
引用
@article{arxiv.1503.02368,
title = {EmptyHeaded: A Relational Engine for Graph Processing},
author = {Christopher R. Aberger and Susan Tu and Kunle Olukotun and Christopher Ré},
journal= {arXiv preprint arXiv:1503.02368},
year = {2017}
}