GraphChi 的磁盘图计算方式挺,能搞定上十亿的边,还不用你配一堆集群,单机就能跑。哦,不过它之前有个小毛病,就是图挖掘算法一上来,内存随机访问多,搞得慢吞吞的。这篇文章就从图的存储格式下手,优化了一波,不光减少了内存跳跃,还让运行时间缩短了 77%。

你要是平时用 GraphChi 多,或者搞过图计算相关的活儿,这套优化思路蛮值得看看。它用了一种自适应选择图表示的方式,还把稀疏矩阵的存储格式也加进来了。说白了,就是按需来,让数据访问更顺滑。

而且作者还搞了并行,就是边加载子图,边更新子图,不会一股脑卡住某一步。挺像是边开车边修路,效率还挺高的。

建议你实战中如果遇到 GraphChi 跑得慢,不妨参考一下这种改法,尤其在做大规模图挖掘或者类似社交网络的活儿时,会省不少事。

对比着看,你也可以翻翻Spark+GraphX那篇,有时候换个框架思路更通。还有个讲ARFF 文件格式的也蛮实用,在预数据时用得上。