Skip to main content
Article thumbnail
Location of Repository

Partitioning a call graph

By Rob H. Bisseling, Jarosław Byrka, Selin Cerav-Erbas, Nebojša Gvozdenovíc, Mathias Lorenz, Rudi Pendavingh, Colin Reeves, Matthias Röger and Arie Verhoeven


Splitting a large software system into smaller and more manageable units has become an important problem for many organizations. The basic structure of a software system is given by a directed graph with vertices representing the programs of the system and arcs representing calls from one program to another. Generating a good partitioning into smaller modules becomes a minimization problem for the number of programs being called by external programs. First, we formulate an equivalent integer linear programming problem with 0–1 variables. theoretically, with this approach the problem can be solved to optimality, but this becomes very costly with increasing size of the software system. Second, we formulate the problem as a hypergraph partitioning problem. This is a heuristic method using a multilevel strategy, but it turns out to be very fast and to deliver solutions that are close to optimal

Topics: Information and communication technology
Year: 2005
OAI identifier:

Suggested articles


  1. (1993). A heuristic for reducing fill-in in sparse matrix factorization”,
  2. (1970). An efficient heuristic procedure for partitioning graphs”,
  3. (2005). Bisseling: “A two-dimensional data distribution method for parallel sparse matrix–vector multiplication”, doi
  4. (1982). Combinatorial Optimization: Algorithms and Complexity, Prentice-Hall, Englewood Cliffs NJ,
  5. (1999). Hypergraph-Partitioning-Based Decomposition for Parallel Sparse-Matrix Vector Multiplication”,
  6. (2000). Improved Algorithms for Hypergraph Bipartitioning”, in:
  7. (1998). Integer Programming, doi
  8. (1986). Theory of Linear and Integer Programming, doi

To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.