新的图模型及机器学习并行框架利器----GraphLab+Graphbuilder

在海量数据盛行的今天,大规模并行计算已经随处可见,尤其是MapReduce框架的出现,促进了并行计算在互联网海量数据处理中的广泛应用。而针对海量数据的机器学习对并行计算的性能、开发复杂度等提出了新的挑战。

         机器学习算法具有下面两个特点: 数据依赖性强,运算过程各个机器之间要进行 频繁的数据交换;流处理复杂,整个处理过程需要 多次迭代,数据的处理条件分支多。

      而 MapReduce是典型的SIMD模型,Map阶段集群的各台机器各自完成负载较重的计算过程,数据并行度高, 适合完成类似矩阵运算、数据统计等 数据独立性强的计算,而对于机器学习类算法并行性能不高。

      为解决机器学习的流处理,Google提出了 Pregel框架,Pregel是严格的 BSP模型,采用“ 计算-通信-同步”的模式完成机器学习的数据同步和算法迭代。Goolge曾称其80%的程序使用MapReduce完成,20%的程序使用Pregel实现。因而,Pregel是很成熟的机器学习流处理框架,但Google一直没有将Pregel的具体实现开源,外界对Pregel的模仿实现在性能和稳定性方面都未能达到工业级应用的标准。

     2010年,CMU的Select实验室提出了GraphLab框架, GraphLab面向机器学习的流处理并行框架。同年, GraphLab基于最初的并行概念实现了1.0版本,在机器学习的流处理并行性能方面得到很大的提升,并引起业界的广泛关注,在2012年GraphLab升级到2.1版本,进一步优化了其并行模型,尤其对自然 的并行性能得到显著改进。
    目前,业界常见的针对迭代或图运算的框架有:
   
    GraphLab的软件架构:
     
    可以看出,他也包含一些常见的机器学习算法
  
    除了常规的机器学习算法,我们也不得不提到图运算(尤其是社交网络)——在数据挖掘与机器学习中也是无处不在:     
   
    然而原始的mapreduce框架针对这些问题显得很无力,正如我们上面所分析的那样,那么来看一种新的方案:
      
    图的并行计算模式:
        
   以这种方案来计算pagerank,性能对比如下:
      
   不知大家有什么不同的见解,不吐不快,哈哈,另外,哪位童靴要是有兴趣,可以研究一下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值