大图的并行最小生成树算法,PB 算法真的挺有意思的。它基于经典的 Prim 和 Borůvka 算法,做了前端驱动的并行优化,效率上提了不少。那种节点上亿的大图也能跑得动,响应还挺快的,适合图聚类、最短路径那类计算密集型场景。

大图的动态性一直挺头疼的,PB 算法也考虑到了这点,带了增量维护机制。你不用每次都重新跑一遍 MST,改动小的话可以直接增量更新,挺省资源的。像社交图这种结构频繁变的,用这个还挺合适。

实现上也考虑得蛮全面,MapReduceBSP都做了适配。不管你是在 Hadoop 上搞,还是用 Pregel 风格的框架,都能比较方便地接入。成本也做了,虽然分布式会有点通信开销,但整体还是挺划算的。

你要是感兴趣,推荐顺带看看下面这些相关实现,像 Kruskal 的 C++ 实现Prim 的最小生成树方案,还有几个 MATLAB树聚类相关的,也都挺有意思的,思路互补。

如果你正好在搞大规模图计算,又不想写一堆复杂的同步代码,PB 算法是个还不错的选择。你可以从 PB(PP Boruvka) 这个名字记住它:分区+并行+经典 MST 融合,想不快都难。