GraphLab介绍
GraphLab 是由CMU(卡内基梅隆大学)的Select 实验室在2010 年提出的一个基于图像处理模型的开源图计算框架,框架使用C++语言开发实现。该框架是面向机器学习(ML)的流处理并行计算框架,可以运行在多处理机的单机系统、集群或是亚马逊的EC2 等多种环境下。框架的设计目标是,像MapReduce一样高度抽象,可以高效执行与机器学习相关的、具有稀疏的计算依赖特性的迭代性算法,并且保证计算过程中数据的高度一致性和高效的并行计算性能。该框架最初是为处理大规模机器学习任务而开发的,但是该框架也同样适用于许多数据挖掘方面的计算任务。在并行图计算领域,该框架在性能上高出很多其他并行计算框架(例如,MapReduce、Mahout)几个数量级。GraphLab 自成立以来就是一个发展很迅速的开源项目,其用户涉及的范围也相当广泛,全球有2 000 多个企业、机构使用GraphLab。
GraphLab的优点
GraphLab 作为一个基于图处理的并行计算框架,能够高效地执行机器学习相关的数据依赖性强,迭代型算法,其设计具有如下特点和优点。
- 统一的API 接口。对于多核处理器和分布式环境,采用统一的API 接口,一次编写程序即可高效地运行在共享内存环境或者分布式集群上。
- 高性能。优化C++执行引擎,在大量多线程操作和同步I/O 操作之间进行了很好的平衡。
- 可伸缩性强。GraphLab 能够智能地选择存储和计算的节点,原因是GraphLab 对于数据的存储与计算都使用了精心设计的优良算法。
- 集成HDFS。GraphLab 内置对HDFS 的支持,GraphLab 能够直接从HDFS中读数据或者将计算结果数据直接写入到HDFS 中。