How can we efficiently run a graph algorithm against a massive graph? To be able to answer this question, we need to clarify what we mean by the word massive. Is a graph with 1 million nodes considered to be massive? How about 10 million, 100 million, or even 1 billion nodes? The real question we should be asking ourselves is whether the graph can actually fit in memory. If the answer is yes, then we can simply buy (or rent from a cloud provider) a server with a beefy CPU, max out the amount of installed memory, and execute our graph-processing code on a single node.
On the other hand, things get much more interesting when the answer to the preceding question is no... Congratulations; you can now claim that you work with big data! In such cases, traditional compute models are evidently inadequate; we need to start exploring alternative...