the MLP algorithm. Section 5 presents a disk-based implementa-
tion of MLP. Section 6 presents experiment results, and Section 7
reviews related works. We conclude in Section 8.
2. BACKGROUND
In this section, we first introduce the Trinity infrastructure, which
is used as a general-purpose computation platform for web scale
graphs. Then, we introduce two techniques related to our approach
for graph partitioning: graph coarsening and label propagation.
2.1 The Trinity Graph System
We use Trinity [17] as the infrastructure for handling web-scale
graphs. Trinity is essentially a memory cloud created out of the
RAM of multiple machines, and it offers a unified memory space
for user programs. Most graph applications need efficient random
data accesses on graphs, and Trinity’s efficient in-memory graph
exploration and bulk message passing mechanisms answered this
need and enable it to handle large graphs.
Trinity supports very efficient memory-based graph exploration.
In one experiment, we deployed a synthetic, power-law graph in a
15-machine cluster managed by Trinity. The graph has Facebook-
like size and distribution (800 millions nodes, 100 billion edges,
with each node having on average 130 edges). We found that ex-
ploring the entire 3-hop neighborhood of any node in the graph
takes less than 100 milliseconds on average. In other words, Trin-
ity is able to explore 130 + 130
2
+ 130
3
≈ 2.2 million edges in
one tenth of a second.
Making the graph topology memory resident makes fast random
graph access possible. On the other hand, some computation al-
lows us to predict the access pattern on the graph. In this case,
we can store the entire graph on the disk and schedule parts of the
graph to be memory resident when they are needed for computa-
tion. This enables Trinity to handle extremely large graphs using
a small number of machines, and enables small organizations that
cannot afford a large memory cloud to perform large-scale compu-
tations on graphs. In this paper, we propose a graph partitioning
algorithm that allows us to predict the access pattern. Thus, we can
partition billion-node graphs even if the memory cloud is not big
enough to hold the entire graph. Our experiments show that we
can partition billion-node graphs with eight machines that each has
48G memory.
Trinity also provides an efficient bulk message passing mecha-
nism. Using this mechanism, we can build an offline computation
platform for web-scale graph analytics on Trinity. For instance, we
can implement the Pregel-like [15] Bulk Synchronous Parallel (B-
SP) computation model. In this model, the programmer writes a
vertex-based algorithm, and the system takes care of its parallel ex-
ecution on all vertices. Trinity’s bulk message passing mechanism
allows for a high performance by BSP. In one experiment, using
just 8 machines, one BSP iteration on a synthetic, power-law graph
of 1 billion nodes and 13 billion edges takes less than 60 seconds.
The efficient graph exploration and bulk message passing mech-
anism of Trinity lays the foundation for developing our graph par-
titioning algorithm. Still, there are many challenges to devising
graph partitioning algorithms for vertex-based computation. In this
paper, we introduce a novel label propagation based algorithm for
graph partitioning.
2.2 Graph Coarsening
Graph partitioning algorithms such as KL [5] and FM [6] are ef-
fective for small graphs. For a large graph, a widely adopted ap-
proach is to “coarsen” the graph until its size is small enough for
KL or FM. The idea is known as multi-level graph partitioning, and
a representative approach is METIS [8].
METIS works in three steps: (1) coarsening the graph; (2) par-
titioning the coarsened graph; (3) uncoarsening. In the 1st step,
METIS coarsens a graph by finding the maximal match. A maxi-
mal match is a maximal set of edges where no two edges share a
common vertex. After it finds a maximal match, it collapses the
two ends of each edge into one node, and as a result, the graph is
“coarsened.” The coarsening step repeats until the graph is small
enough. Then, in the 2nd step, it applies KL or FM directly on the
small graph. In the third step, the partitions on the small graph are
projected back to the finer graphs.
Before we discuss potential problems of coarsening for real life
graphs, we first look at an example:
EXAMPLE 1 (MAXIMAL MATCH). For the graph shown in Fig-
ure 1(a), the following edge set is a maximal match:
{(c, f ), (e, g), (h, i), (k, l), (j, b), (a, d)}
Figure 1(b) is the result of coarsening (obtained after collapsing
the two ends of each edge in the maximal match).
The correctness of METIS is based on the following assumption:
A (near) optimal partitioning on a coarser graph implies a good
partitioning in the finer graph. However, in general, the assumption
only holds true when the degree of nodes in the graph is bounded
by a constant [9]. For example, 2D or 3D meshes are graphs where
node degrees are bounded. However, for today’s real life graphs,
the assumption does not hold any more. It is well established that
the degree distribution of real life networks are right-skewed, and
there are many hub vertices with very large degrees. In other word-
s, the degree is not bounded by a small constant, but is related to the
size of the graph. As a result, a maximal match may fail to serve as
a good coarsening scheme in graph partitioning. For example, the
coarsened graph in Figure 1(b) no longer contains the clear struc-
ture of the original graph. Thus, partitions on the coarsened graph
cannot be optimal for the original graph.
Furthermore, the process of coarsening by maximal match is inef-
ficient for billion-node graphs. Two maximal match strategies are
used in various versions of METIS: Random matching (RM) and
Heavy Edge Matching (HEM). In RM, the vertices are visited in
a random order. If a vertex u has not been matched yet, then one
of its unmatched neighbors will be randomly selected and matched
with u. HEM is similar to RM, except that it selects the unmatched
neighbor v if edge (u, v) has the largest weight. As we can see, in
the above mentioned approaches, vertices are matched in a random
order. For disk resident graphs, random access leads to bad perfor-
mance. In a multi-level framework, graphs generated at each level
and the mappings between them are stored in memory. These inter-
mediate results can be very large. For example, for LiveJournal
2
,
a real social network that contains more than four million vertices,
METIS (using either RM or HEM) will consume more than 10G of
memory. The heavy usage of memory makes the approach unfea-
sible for billion-node graphs.
2.3 Label Propagation
We propose a method for large scale graph partitioning based on
the idea of label propagation (LP), which was originally proposed
for community detection in social networks. A naive LP runs as
follows. We first assign a unique label id to each vertex. Then,
we update the vertex label iteratively. In each iteration, a vertex
takes the label that is prevalent in its neighborhood as its own label.
The process terminates when labels no longer change. Vertices that
have the same label belong to the same partition.
There are two reasons we adopt label propagation for partition-
ing. First, the label propagation mechanism is lightweight. It does
not generate big intermediary results, and it does not require sort-
ing or indexing the data as in many current graph partitioning algo-
rithms. This makes label propagation feasible for web scale graphs
deployed on Trinity. With Trinity’s efficient graph exploration and
2
http://snap.stanford.edu/data/soc-LiveJournal1.html