本文是一系列文章的第三篇,将介绍图计算系统领域在Pregel/GraphLab/PowerGraph/GraphChi这些奠基性工作出现后的进展。我们将按照两个维度:使用的机器数量、是否使用外存作为内存的扩展,将图计算系统分为四个象限——单机内存、单机外存、多机内存、以及多机外存,分别介绍每个象限中的代表性系统。
单机内存
现代的多路服务器已经可以⽀持TB级别的内存容量,⾜够容纳边数在百亿规模以下的⼤部分现实世界的图数据。此时,使⽤单台服务器完成图数据处理便成为了最直接的选择。
Ligra
Ligra提供了⼀套基于顶点集合和边集合的编程接口,⽤户可以调⽤两个原语分别对所有活跃的顶点和所有活跃的边(即所有活跃顶点的出边)进⾏处理,处理的具体内容取决于⽤户⾃定义的函数。对于活跃边集的处理,Ligra巧妙地利⽤了**推送(push)和拉取(pull)**两种处理模式在并⾏图计算环境下所具有的不同优劣,在运⾏时会⾃适应地在两种模式之间动态切换。
Galois
Galois是另⼀个⾯向单机内存的图数据处理系统。相⽐之前的系统,Galois让⽤户可以使⽤更底层的接口表达