Overview

The graph partitioning problem asks for a division of a graph's node set into k equally sized blocks such that the number of edges that run between the blocks is minimized. An example graph that is partitioned into four blocks:

KaHIP - Karlsruhe High Quality Partitioning - is a family of graph partitioning programs. It includes KaFFPa (Karlsruhe Fast Flow Partitioner), which is a multilevel graph partitioning algorithm, in its variants Strong, Eco and Fast, KaFFPaE (KaFFPaEvolutionary) which is a parallel evolutionary algorithm that uses KaFFPa to provide combine and mutation operations, as well as KaBaPE which extends the evolutionary algorithm.
Moreover, specialized techniques are included to partition road networks (Buffoon), to output a vertex separator from a given partition or techniques geared towards efficient partitioning of social networks.

Mapping Algorithms: Our new algorithms to map the blocks onto processors to minimize overall communication time based on hierarchical partitionings of the task graph and fast local search algorithms.

News:1st March 2017: Released KaHIP v2.00 which now includes ParHIP, i.e. distributed memory parallel codes to partition hierarchically structured networks such as web graphs or social networks, and mapping algorithms that map task graphs (quotient graphs) onto processor graphs.

29th April 2016: Released KaHIP v1.00 which now includes improved codes for the node separator problem based on max-flow min-cut computations as well as locallized local search.5th October 2015: Released KaHIP v0.73 which now includes an example program to link and call the library.3rd January 2015: Included example wrapper to link the KaHIP library within Java projects.22nd November 2014: We released KaHIP v0.7 which includes the possibility to balance edges among blocks and integrates our own max-flow min-cut implementations. Balancing edges among blocks is in particular important for graph processing frameworks or parallel matrix vector multiplications.13rd June 2014: We added huge weighted max-flow min-cut instances from multilevel graph partitioning which may be used for benchmarking max-flow min-cut algorithms. 22nd April 2014: We released a technical report on parallel graph partitioning for complex networks. For example, we can obtain a high quality partition of uk-2007, which has 3.3 billion edges, in roughly 16 seconds. The report can be found here. The code will also be released within the project -- stay tuned!22nd April 2014: We released a technical report on (semi-)external graph partitioning. The report can be found here. 3rd March 2014: We added huge max-flow min-cut instances created with our partitioning framework. The max-flow min-cut instances stem from the local search algorithms within KaFFPa that are used to improve a bipartition of the graph. They contain up to 2.6 billion edges and can be found in the miscellaneous section. 14th February 2014: Version 0.6 is out! We integrated improved algorithms for social networks and web graphs. The algorithms integrated are from the paper "Partitioning Complex Networks via Size-constrained Clustering" (see below).