2 GraphLab refs

Designing and implementing efficient, provably correct parallel machine learning
(ML) algorithms is challenging. Existing high-level parallel abstractions like
MapReduce are insufficiently expressive while low-level tools like MPI and
Pthreads leave ML experts repeatedly solving the same design challenges. By
targeting common patterns in ML, we developed GraphLab, which improves upon
abstractions like MapReduce by compactly expressing asynchronous iterative
algorithms with sparse computational dependencies while ensuring data
consistency and achieving a high degree of parallel performance. We demonstrate
the expressiveness of the GraphLab framework by designing and implementing
parallel versions of belief propagation, Gibbs sampling, Co-EM, Lasso and
Compressed Sensing. We show that using GraphLab we can achieve excellent
parallel performance on large-scale real-world problems.

Distributed GraphLab:  We develop graph based extensions to pipelined locking
and data versioning to reduce network congestion and mitigate the effect of
network latency. We also introduce fault tolerance to the GraphLab abstraction
using the classic Chandy-Lamport snapshot algorithm and demonstrate how it can
be easily implemented by exploiting the GraphLab abstraction itself. Finally, we
evaluate our distributed implementation of the GraphLab abstraction on a large
Amazon EC2 deployment and show 1-2 orders of magnitude performance gains over
Hadoop-based implementations.