空头

EmptyHeaded:用于图形处理的关系引擎。有两种类型的高性能图形处理引擎:低级引擎和高级引擎。低层引擎(Galois、PowerGraph、Snap)提供了优化的数据结构和计算模型,但需要用户编写低级的命令式代码,从而确保效率是用户的负担。在高级引擎中,用户使用datalog(SociaLite)或SQL(Grail)等查询语言编写。高级引擎更易于使用,但比低级图形引擎慢几个数量级。我们介绍了一个高级引擎EmptyHeaded,它支持丰富的类似数据日志的查询语言,并且实现了与低级引擎相当的性能。EmptyHeaded设计的核心是一类新的连接算法,它们满足强大的理论保证,但迄今为止还没有达到与专用图形处理引擎相媲美的性能。为了实现高性能,EmptyHeaded引入了一种新的连接引擎架构,包括一个新颖的查询优化器和利用单指令多数据(SIMD)并行性的数据布局。使用这种架构,EmptyHeaded在图形模式查询、PageRank和单源最短路径(SSSP)方面的性能比高级方法高达三个数量级,比许多低级基线快一个数量级。我们在最差的3倍引擎上验证了它的性能。