1. A computer-implemented method for processing a graph comprising graph data in a network comprising a plurality of individual processor-based machines, the method comprising: partitioning the graph into a plurality of partitions wherein the number of the plurality of partitions is a function of the number of the plurality of machines; assigning each partition to a respective machine of the plurality of machines by applying a splitting function to the graph data; applying a density-based filter to each partition to produce a plurality of partitions of a filtered graph, the density-based filter applies one or more density constraints to each partition such that vertices with at least a minimum number of neighboring nodes within a distance defined by the density constraints include nodes with edges pointing to neighboring nodes and vertices that do not have the minimum number of neighboring nodes within the distance defined by the density constraints do not include nodes with edges pointing to neighboring nodes; applying a partial connectivity detector process that detects connectivity between nodes to each of the partitions of the filtered graph to produce sub-clusters of nodes of the filtered graph based on the edges between the nodes; and merging the sub-clusters of nodes through a message based merge process.