The GraphLab project started at Carnegie Mellon University in 2009 to develop a new parallel computation abstraction tailored to machine learning. GraphLab 1.0 presented our first shared memory design which, through the addition of several matrix factorization toolkits, started to grow a community of users.
In the last couple of years, we have focused our development effort on the distributed environment. In GraphLab 2.1, we completely redesign of the GraphLab 1 framework for the distributed environment. The implementation is distributed by design and a "shared-memory" execution is essentially running a distributed system on a cluster of a single machine.
The latest GraphLab open source release is GraphLab PowerGraph version 2.2, where we introduce the new Warp System which through the use of fine-grained user-mode threading, introduces a new API which brings about a major increase in useability, and will allow us to provide new capabilities more easily in the future.
There are two starting points where one may begin using GraphLab.
GraphChi(huahua) is a spin-off of the GraphLab(rador) project.
GraphChi can run very large graph computations on just a single machine, by using a novel algorithm for processing the graph from disk (SSD or hard drive). Programs for GraphChi are written in similar vertex-centric model as GraphLab. GraphChi runs vertex-centric programs asynchronously (i.e changes written to edges are immediately visible to subsequent computation), and in parallel. GraphChi also supports streaming graph updates and changing the graph structure while computing.
GraphChi brings web-scale graph computation, such as analysis of social networks, available to anyone with a modern laptop or PC. It saves you from the hassle and costs of working with a distributed cluster or cloud services. We find it much easier to debug applications on a single computer than trying to understand how a distributed algorithm is executed. If you do require the processing power of high-performance clusters, GraphChi can be an excellent tool for developing and debugging your algorithms prior to deploying them to the cluster.
Remarkably, in some cases GraphChi can solve bigger problems in reasonable time than many other available distributed frameworks. Learn more...