FLASH 是一个新的分布式图分析算法编程模型,它提供了强大的表达能力、简单易用的编程接口以及高效的系统性能,FLASH 相关论文《FLASH: A Framework for Programming Distributed Graph Processing Algorithms》发表在数据库领域顶级国际会议 ICDE 2023。
背景介绍
图论是一个传统数学分支,各类图分析算法已经被应用在了各个领域,如数据挖掘、社交网络分析、路径规划、科学计算等。然而,目前的大部分分布式图计算编程模型/框架都只专注于少数几个特定的图算法,如广度优先搜索(BFS)、PageRank、单源最短路径(SSSP)等。这类图算法采用经典的“以点为中心”的编程思想,遵循迭代式、单阶段和基于值传递的计算模式(简称 ISVP 模式):算法迭代执行直到收敛,在每次迭代中,所有顶点都会从其邻居接收消息以更新自己的状态,然后将更新后的状态作为消息发送给邻居以用于下一次迭代。虽然这种高度抽象的编程模型在一定程度上降低了分布式图分析算法的编程门槛,提高了生产力,但却牺牲了模型的表达能力。由于其专门为遵循 ISVP 模式的图算法所设计,因此无法适用于大量不符合此类计算模式的算法。随着应用场景的不断扩展,对于更高级、更复杂的图算法的需求也日益增长,这对现有的图计算模型和框架提出了巨大的挑战。很多实际应用场景中需要的分布式图算法在基于现有模型和框架实现时,面临着计算效率低下、表达能力有限或编程复杂性高的问题。
GraphScope 团队尝试提出 GRAPE 来解决这个问题。GRAPE 通过基于 SubGraph 的 PIE 编程模型以及单机图算法的即插即用,来达到较强的表达能力和较低的编程复杂性。FLASH 则从另一个角度出发,沿用以点为中心的思想,并提出了一种全新的以点为中心的编程模型以解决这一问题。在调研了大量分布式图分析算法&