  In this paper, we develop semi-external and external memory algorithms for
graph partitioning and clustering problems. Graph partitioning and clustering
are key tools for processing and analyzing large complex networks. We address
both problems in the (semi-)external model by adapting the size-constrained
label propagation technique. Our (semi-)external size-constrained label
propagation algorithm can be used to compute graph clusterings and is a
prerequisite for the (semi-)external graph partitioning algorithm. The
algorithm is then used for both the coarsening and the refinement phase of a
multilevel algorithm to compute graph partitions. Our algorithm is able to
partition and cluster huge complex networks with billions of edges on cheap
commodity machines. Experiments demonstrate that the semi-external graph
partitioning algorithm is scalable and can compute high quality partitions in
time that is comparable to the running time of an efficient internal memory
implementation. A parallelization of the algorithm in the semi-external model
further reduces running time.
