Graphchi介绍及BFS实现

Graphchi是一种基于磁盘的图处理系统,用于在数据图不能完全加载到内存的情况下进行分析。它采用并行滑动窗口减少磁盘I/O,支持以顶点为中心的编程模型。本文介绍了Graphchi的基本原理,并展示了如何用Graphchi实现BFS算法,最终统计和输出图中最大顶点数的层级信息。
摘要由CSDN通过智能技术生成

随着图规模的逐渐增大,普通PC已无法将整个图一次完全载入到内存中,如何在数据图只能部分载入内存的情况下也能使用数据挖掘算法(如pagerank、wcc等)进行分析?随着Graphchi的出现,这个问题得到了较好解决。Graphchi是由CMU(卡内基梅隆大学)博士Aapo Kyrola开发的一套基于磁盘的图处理系统,该系统声称能有效处理边数目达数十亿规模的数据图。我们都知道计算机中各个层次的数据访问时间:CPU访问寄存器、访问内存、访问磁盘依次存在几个数量级的差异,而数据I/O时间往往成为系统的性能瓶颈,Graphchi使用并行滑动窗口(parallel sliding window)来处理存储在磁盘上的图数据,减少了磁盘的随机读写,从而减少了处理过程中的磁盘访问时间。首先Graphchi将图中所有顶点按id由小到大划分成几个区间(interval),然后每个区间对应一个shard用来存放该区间内所有顶点的入边(边先按目的点排序再按源点排序),这样就完成了图的划分。图算法执行时将各个interval及对应shard中的入边(memory shard)和聚集其他shard中的出边(sliding shard)载入内存进行处理。原理如下图所示:

PSW

toy
这样就使得对存放在磁盘中的边的访问绝大部分是顺序进行的,减少了随机访问可能导致的系统性能下降。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值