GraphLab is a powerful new system for designing and implementing parallel algorithms in machine learning. While the current targets multi-core shared memory parallel systems we are in the process of implementing a distributed version and plan to provide support for alternative parallel architectures include GPUs in the near future.
The easiest way to pick up GraphLab is to code! Here is a pagerank example which will provide you with some of the high level ideas of GraphLab And here is a more detailed example which provides more details as well as the the supporting APIs surrounding GraphLab.
The key pages of interest are:
GraphLab is heavily templatized and the following two structures help to simplify template usage.
GraphLab is additionally supported by a serialization library, a fast parallel/thread-safe random number generator, as well as a flexible command line parsing system.
The GraphLab library also has a collection of parallel utility classes and functions which may be useful.
There is a basic usage documentation for the distributed GraphLab implementation here: Using Distributed GraphLab .
It relies on a nice RPC implementation documented here: GraphLab RPC .