1. A computer-executable method for partitioning a graph representing customer purchases to facilitate parallel computations, comprising: receiving graph data indicating vertices and edges of the graph, wherein the vertices represent customers and products and the edges represent purchases; partitioning edges of the graph to generate a partitioned graph such that each edge of the graph is a member of a respective partition; and performing parallel computations on the graph data in one or more partitions to determine product recommendations.