We began this chapter by presenting the BSP model for building systems that can support out-of-core processing for massive datasets. Then, we applied the key principles of the BSP model so that we could create our own graph processing system that can execute user-defined compute functions for every vertex in the graph in parallel while taking advantage of all the available CPU cores.
In the second half of this chapter, we explored a variety of graph-related problems and came up with parallel algorithms that can be efficiently executed against graphs of any size. In the last part of this chapter, we described the theory behind Google's PageRank algorithm and outlined the formulas for calculating PageRank scores in an iterative way. We leveraged the graph processing system to build a fully-fledged PageRank calculator that will form the basis for implementing the PageRank...