Group DIMACS10

Group Description
10th DIMACS Implementation Challenge

Updated July 2012

As stated on their main website ( ), the "DIMACS Implementation
Challenges address questions of determining realistic algorithm
performance where worst case analysis is overly pessimistic and
probabilistic models are too unrealistic: experimentation can provide
guides to realistic algorithm performance where analysis fails."

For the 10th DIMACS Implementation Challenge, the two related
problems of graph partitioning and graph clustering were chosen.
Graph partitioning and graph clustering are among the aforementioned
questions or problem areas where theoretical and practical results
deviate significantly from each other, so that experimental outcomes
are of particular interest.

Problem Motivation

Graph partitioning and graph clustering are ubiquitous subtasks in
many application areas. Generally speaking, both techniques aim at
the identification of vertex subsets with many internal and few
external edges. To name only a few, problems addressed by graph
partitioning and graph clustering algorithms are:

    * What are the communities within an (online) social network?
    * How do I speed up a numerical simulation by mapping it
        efficiently onto a parallel computer?
    * How must components be organized on a computer chip such that
        they can communicate efficiently with each other?
    * What are the segments of a digital image?
    * Which functions are certain genes (most likely) responsible

Challenge Goals

    * One goal of this Challenge is to create a reproducible picture
        of the state-of-the-art in the area of graph partitioning
        (GP) and graph clustering (GC) algorithms. To this end we
        are identifying a standard set of benchmark instances and

    * Moreover, after initiating a discussion with the community, we
        would like to establish the most appropriate problem
        formulations and objective functions for a variety of

    * Another goal is to enable current researchers to compare their
        codes with each other, in hopes of identifying the most
        effective algorithmic innovations that have been proposed.

    * The final goal is to publish proceedings containing results
        presented at the Challenge workshop, and a book containing
        the best of the proceedings papers.

Problems Addressed

The precise problem formulations need to be established in the course
of the Challenge. The descriptions below serve as a starting point.

    * Graph partitioning:

      The most common formulation of the graph partitioning problem
      for an undirected graph G = (V,E) asks for a division of V into
      k pairwise disjoint subsets (partitions) such that all
      partitions are of approximately equal size and the edge-cut,
      i.e., the total number of edges having their incident nodes in
      different subdomains, is minimized. The problem is known to be

    * Graph clustering:

      Clustering is an important tool for investigating the
      structural properties of data. Generally speaking, clustering
      refers to the grouping of objects such that objects in the same
      cluster are more similar to each other than to objects of
      different clusters. The similarity measure depends on the
      underlying application. Clustering graphs usually refers to the
      identification of vertex subsets (clusters) that have
      significantly more internal edges (to vertices of the same
      cluster) than external ones (to vertices of another cluster).

There are 12 data sets in the DIMACS10 collection:

clustering: real-world graphs commonly used as benchmarks
coauthor:   citation and co-author networks
Delaunay:   Delaunay triangulations of random points in the plane
dyn-frames: frames from a 2D dynamic simulation
Kronecker:  synthetic graphs from the Graph500 benchmark
numerical:  graphs from numerical simulation
random:     random geometric graphs (random points in the unit square)
streets:    real-world street networks
Walshaw:    Chris Walshaw's graph partitioning archive
matrix:     graphs from the UF collection (not added here)
redistrict: census networks
star-mixtures : artificially generated from sets of real graphs

Some of the graphs already exist in the UF Collection.  In some cases,
the original graph is unsymmetric, with values, whereas the DIMACS
graph is the symmetrized pattern of A+A'.  Rather than add duplicate
patterns to the UF Collection, a MATLAB script is provided at which downloads
each matrix from the UF Collection via UFget, and then performs whatever
operation is required to convert the matrix to the DIMACS graph problem.
Also posted at that page is a MATLAB code (metis_graph) for reading the
DIMACS *.graph files into MATLAB.

clustering:  Clustering Benchmarks

    These real-world graphs are often used as benchmarks in the graph
    clustering and community detection communities.  All but 4 of the 27
    graphs already appear in the UF collection in other groups.  The
    DIMACS10 version is always symmetric, binary, and with zero-free
    diagonal.  The version in the UF collection may not have those
    properties, but in those cases, if the pattern of the UF matrix
    is symmetrized and the diagonal removed, the result is the DIMACS10

    DIMACS10 graph:                 new?   UF matrix:
    ---------------                 ----   -------------
    clustering/adjnoun                     Newman/adjoun
    clustering/as-22july06                 Newman/as-22july06
    clustering/astro-ph                    Newman/astro-ph
    clustering/caidaRouterLevel      *     DIMACS10/caidaRouterLevel
    clustering/celegans_metabolic          Arenas/celegans_metabolic
    clustering/celegansneural              Newman/celegansneural
    clustering/chesapeake            *     DIMACS10/chesapeake
    clustering/cnr-2000                    LAW/cnr-2000
    clustering/cond-mat-2003               Newman/cond-mat-2003
    clustering/cond-mat-2005               Newman/cond-mat-2005
    clustering/cond-mat                    Newman/cond-mat
    clustering/dolphins                    Newman/dolphins
    clustering/email                       Arenas/email
    clustering/eu-2005                     LAW/eu-2005
    clustering/football                    Newman/football
    clustering/hep-th                      Newman/hep-th
    clustering/in-2004                     LAW/in-2004
    clustering/jazz                        Arenas/jazz
    clustering/karate                      Arenas/karate
    clustering/lesmis                      Newman/lesmis
    clustering/netscience                  Newman/netscience
    clustering/PGPgiantcompo               Arenas/PGPgiantcompo
    clustering/polblogs                    Newman/polblogs
    clustering/polbooks                    Newman/polbooks
    clustering/power                       Newman/power
    clustering/road_central          *     DIMACS10/road_central
    clustering/road_usa              *     DIMACS10/road_usa

    the following graphs were added on July 2012:


    uk-2002 was 'added' on July 2012 to the dimacs10 MATLAB interface,
    but it already appears as the LAW/uk-2002 matrix.

    uk-2007-05 is in the DIMACS10 collection but is not yet added here,
    because it's too large for the file format of the UF collection.

coauthor:  Citation Networks

    These graphs are examples of social networks used in R. Geisberger, P.
    Sanders, and D. Schultes. Better approximation of betweenness
    centrality. In 10th Workshop on Algorithm Engineering and
    Experimentation, pages 90-108, San Francisco, 2008. SIAM.

Delaunay:  Delaunay Graphs

    These files have been generated as Delaunay triangulations of random
    points in the unit square.

    Engineering a scalable high quality graph partitioner,
    M. Holtgrewe, P. Sanders, C. Schulz, IPDPS 2010

dyn-frames:  Frames from 2D Dynamic Simulations

    These files have been created with the generator described in Oliver
    Marquardt, Stefan Schamberger: Open Benchmarks for Load Balancing
    Heuristics in Parallel Adaptive Finite Element Computations. In Proc.
    International Conference on Parallel and Distributed Processing
    Techniques and Applications (PDPTA 2005), Volume 2, pp. 685-691. CSREA
    Press 2005, ISBN 1-932415-59-9685-691.

    The graphs are meshes taken from indivudual frames of a dynamic
    sequence that resembles two-dimensional adaptive numerical simulations.
    Smaller versions of these files (and their dynamic sequences as videos)
    can be found on Stefan Schamberger's website ( ) dedicated to these
    benchmarks. The files presented here are the frames 0, 10, and 20 of
    the sequences, respectively.

Kronecker:  Kronecker Generator Graphs

    The original Kronecker files contain self-loops and multiple edges.
    These properties are also present in real-world data sets. However,
    some tools cannot handle these "artifacts" at the moment. That is why
    we present "cleansed" versions of the data sets as well.  For the
    Challenge you should expect to be confronted with the original data
    with self-loops and multiple edges. However, the final decision on
    this issue will be made based on participant feedback.

    All files have been generated with the R-MAT parameters A=0.57, B=0.19,
    C=0.19, and D=1-(A+B+C)=0.05 and edgefactor=48, i.e., the number of
    edges equals 48*n, where n is the number of vertices. Details about the
    generator and the parameter meanings can be found on the Graph500
    website.  ( )

    There are 12 graphs in the DIMACS10 test set at .  Them come in 6 pairs.
    One graph in each pair is a multigraph, with self-edges.  The other
    graph is the nonzero pattern of the first (binary), with self-edges
    removed.  MATLAB cannot directly represent multigraph, so in the UF
    Collection the unweighted multigraph G is represented as a matrix A
    where A(i,j) is an integer equal to the number edges (i,j) in G.

    The binary graphs include the word 'simple' in their
    name In the UF Collection, only the multigraph is included,
    since the simple graph can be constructed from the multigraph.
    If A is the multigraph, the simple graph S can be computed as:

       S = spones (tril (A,-1)) + spones (triu (A,1)) ;

    DIMACS10 graph:                        UF matrix:
    ---------------                        -------------
    kronecker/kron_g500-logn16             DIMACS10/kron_g500-logn16

    kronecker/kron_g500-logn17             DIMACS10/kron_g500-logn17

    kronecker/kron_g500-logn18             DIMACS10/kron_g500-logn18

    kronecker/kron_g500-logn19             DIMACS10/kron_g500-logn19

    kronecker/kron_g500-logn20             DIMACS10/kron_g500-logn20

    kronecker/kron_g500-logn21             DIMACS10/kron_g500-logn21

    References: "Introducing the Graph 500," Richard C. Murphy, Kyle B.
    Wheeler, Brian W. Barrett, James A. Ang, Cray User's Group (CUG), May
    5, 2010.

    D.A. Bader, J. Feo, J. Gilbert, J. Kepner, D. Koester, E. Loh, K.
    Madduri, W. Mann, Theresa Meuse, HPCS Scalable Synthetic Compact
    Applications #2 Graph Analysis (SSCA#2 v2.2 Specification), 5
    September 2007.

    D. Chakrabarti, Y. Zhan, and C. Faloutsos, R-MAT: A recursive model
    for graph mining, SIAM Data Mining 2004.

    Section 17.6, Algorithms in C (third edition). Part 5 Graph
    Algorithms, Robert Sedgewick (Programs 17.7 and 17.8)

    P. Sanders, Random Permutations on Distributed, External and
    Hierarchical Memory, Information Processing Letters 67 (1988) pp

    "DFS: A Simple to Write Yet Difficult to Execute Benchmark," Richard C.
    Murphy, Jonathan Berry, William McLendon, Bruce Hendrickson, Douglas
    Gregor, Andrew Lumsdaine, IEEE International Symposium on Workload
    Characterizations 2006 (IISWC06), San Jose, CA, 25-27 October 2006.

    ---- sample code for generating these matrices:

    function ij = kronecker_generator (SCALE, edgefactor)
    %% Generate an edgelist according to the Graph500
    %% parameters.  In this sample, the edge list is
    %% returned in an array with two rows, where StartVertex
    %% is first row and EndVertex is the second.  The vertex
    %% labels start at zero.
    %% Example, creating a sparse matrix for viewing:
    %%   ij = kronecker_generator (10, 16);
    %%   G = sparse (ij(1,:)+1, ij(2,:)+1, ones (1, size (ij, 2)));
    %%   spy (G);
    %% The spy plot should appear fairly dense. Any locality
    %% is removed by the final permutations.

      %% Set number of vertices.
      N = 2^SCALE;

      %% Set number of edges.
      M = edgefactor * N;

      %% Set initiator probabilities.
      [A, B, C] = deal (0.57, 0.19, 0.19);

      %% Create index arrays.
      ij = ones (2, M);
      %% Loop over each order of bit.
      ab = A + B;
      c_norm = C/(1 - (A + B));
      a_norm = A/(A + B);

      for ib = 1:SCALE,
        %% Compare with probabilities and set bits of indices.
        ii_bit = rand (1, M) > ab;
        jj_bit = rand (1, M) > ( c_norm * ii_bit + a_norm * not (ii_bit) );
        ij = ij + 2^(ib-1) * [ii_bit; jj_bit];

      %% Permute vertex labels
      p = randperm (N);
      ij = p(ij);

      %% Permute the edge list
      p = randperm (M);
      ij = ij(:, p);

      %% Adjust to zero-based labels.
      ij = ij - 1;

    function G = kernel_1 (ij)
    %% Compute a sparse adjacency matrix representation
    %% of the graph with edges from ij.

      %% Remove self-edges.
      ij(:, ij(1,:) == ij(2,:)) = [];
      %% Adjust away from zero labels.
      ij = ij + 1;
      %% Find the maximum label for sizing.
      N = max (max (ij));
      %% Create the matrix, ensuring it is square.
      G = sparse (ij(1,:), ij(2,:), ones (1, size (ij, 2)), N, N);
      %% Symmetrize to model an undirected graph.
      G = spones (G + G.');

numerical: graphs from numerical simulations

    For the graphs adaptive and venturiLevel3, please refer to the preprint:

    Hartwig Anzt, Werner Augustin, Martin Baumann, Hendryk Bockelmann,
    Thomas Gengenbach, Tobias Hahn, Vincent Heuveline, Eva Ketelaer,
    Dimitar Lukarski, Andrea Otzen, Sebastian Ritterbusch, Bjo"rn Rocker,
    Staffan RonnĂ¥s, Michael Schick, Chandramowli Subramanian, Jan-Philipp
    Weiss, and Florian Wilhelm.  Hiflow3 - a flexible and hardware-aware
    parallel Finite element package. In Parallel/High-Performance Object-
    Oriented Scientific Computing (POOSC'10).

    For the graphs channel-500x100x100-b050 and packing-500x100x100-b050,
    please refer to:

    Markus Wittmann, Thomas Zeiser. Technical Note: Data Structures of
    ILBDC Lattice Boltzmann Solver.

    The instances NACA0015, M6, 333SP, AS365, and NLR are 2-dimensional FE
    triangular meshes with coordinate information. 333SP and AS365 are actually
    converted from existing 3-dimensional models to 2D places, while the rest
    are created from geometry. The corresponding coordinate files have been
    assembled in one archive. They have been created and contributed by Chan
    Siew Yin with the help of Jian Tao Zhang, Department of Mechanical
    Engineering, University of New Brunswick, Fredericton, Canada. 

random:  Random Geometric Graphs

    rggX is a random geometric graph with 2^X vertices. Each vertex is a
    random point in the unit square and edges connect vertices whose
    Euclidean distance is below 0.55 (ln n)/n. This threshold was choosen
    in order to ensure that the graph is almost connected.

    Note:  the UF Collection is a collection of matrices primarily from
    real applications.  The only random matrices I add to the collection
    are those used in established benchmarks (such as DIMACS10).

    Engineering a scalable high quality graph partitioner,
    M. Holtgrewe, P. Sanders, C. Schulz, IPDPS 2010.

steets:  Street Networks

    The graphs Asia, Belgium, Europe, Germany, Great-Britain, Italy,
    Luxemburg and Netherlands are (roughly speaking) undirected and
    unweighted versions of the largest strongly connected component
    of the corresponding Open Street Map road networks. The Open
    Street Map road networks have been taken from and have been converted for DIMACS10
    by Moritz Kobitzsch (kobitzsch at as follows:

    First, we took the corresponding graph and extracted all routeable
    streets. Routable streets are objects in this file that are tagged
    using one of the following tags: motorway, motorway_link, trunk
    trunk_link, primary, primary_link, secondary, secondary_link,
    tertiary, tertiary_link, residential, unclassified, road,
    living_street, and service.  Next, we now compute the largest
    strongly connected component of this extracted open street map graph.
    Self-edges and parallel edges are removed afterwards.
    The DIMACS 10 graph is now the undirected and unweighted version
    of the constructed graph, i.e.  if there is an edge (u,v) but the
    reverse edge (v,u) is missing, we insert the reverse edge into the
    graph.  The XY coordinates of each node in the graph are preserved.

Walshaw:  Chris Walshaw's graph partitioning archive

    Chris Walshaw's graph partitioning archive contains 34 graphs that
    have been very popular as benchmarks for graph partitioning algorithms
    ( ).

    17 of them are already in the UF Collection.  Only the 17 new graphs
    not yet in the collection are added here in the DIMACS10 set.

    DIMACS10 graph:                 new?   UF matrix:
    ---------------                 ----   -------------
    walshaw/144                      *     DIMACS10/144
    walshaw/3elt                           AG-Monien/3elt
    walshaw/4elt                           Pothen/barth5
    walshaw/598a                     *     DIMACS10/598a
    walshaw/add20                          Hamm/add20
    walshaw/add32                          Hamm/add32
    walshaw/auto                     *     DIMACS10/auto
    walshaw/bcsstk29                       HB/bcsstk29
    walshaw/bcsstk30                       HB/bcsstk30
    walshaw/bcsstk31                       HB/bcsstk31
    walshaw/bcsstk32                       HB/bcsstk32
    walshaw/bcsstk33                       HB/bcsstk33
    walshaw/brack2                         AG-Monien/brack2
    walshaw/crack                          AG-Monient/crack
    walshaw/cs4                      *     DIMACS10/cs4
    walshaw/cti                      *     DIMACS10/cti
    walshaw/data                     *     DIMACS10/data
    walshaw/fe_4elt2                 *     DIMACS10/fe_4elt2
    walshaw/fe_body                  *     DIMACS10/fe_body
    walshaw/fe_ocean                 *     DIMACS10/fe_ocean
    walshaw/fe_pwt                         Pothen/pwt
    walshaw/fe_rotor                 *     DIMACS10/fe_rotor
    walshaw/fe_sphere                *     DIMACS10/fe_sphere
    walshaw/fe_tooth                 *     DIMACS10/fe_tooth
    walshaw/finan512                       Mulvey/finan512
    walshaw/m14b                     *     DIMACS10/m14b
    walshaw/memplus                        Hamm/memplus
    walshaw/t60k                     *     DIMACS10/t60k
    walshaw/uk                       *     DIMACS10/uk
    walshaw/vibrobox                       Cote/vibrobox
    walshaw/wave                           AG-Monien/wave
    walshaw/whitaker3                      AG-Monien/whitaker3
    walshaw/wing                     *     DIMACS10/wing
    walshaw/wing_nodal               *     DIMACS10/wing_nodal

redistrict:  census networks

    These graphs represent US states. They are used for solving the
    redistricting problem. All data have been provided by Will Zhao. As stated
    on the project website,  The nodes are Census2010 blocks. Two nodes have an
    edge linking them if they share a line segment on their borders, i.e.
    rook-style neighboring. The nodes weights are the POP100 variable of
    Census2010-PL94, and the area of eache district.

star-mixtures : artificially generated from sets of real graphs

    Each graph in this benchmark represents a star-like structure of different
    graphs S0 , . . . , St. Graphs S1 , . . . , St are weakly connected to the
    center S0 by random edges. The total number of edges between each Si and S0
    was less than 3% out of the total number of edges in Si . The graphs are
    mixtures of the following structures: social networks, finite-element
    graphs, VLSI chips, peer-to-peer networks, and matrices from optimization

    More info can be found in the paper I. Safro, P. Sanders, C. Schulz:
    Advanced Coarsening Schemes for Graph Partitioning, SEA 2012.

    Communicated by Christian Schulz, uploaded on March 30, 2012.
Displaying collection matrices 1 - 20 of 151 in total
Id Name Group Rows Cols Nonzeros Kind Date Download File
2646 vsp_vibrobox_scagr7-2c_rlfddd DIMACS10 77,328 77,328 871,172 Random Unweighted Graph 2011 MATLAB Rutherford Boeing Matrix Market
2645 vsp_south31_slptsk DIMACS10 39,668 39,668 379,828 Random Unweighted Graph 2011 MATLAB Rutherford Boeing Matrix Market
2644 vsp_sctap1-2b_and_seymourl DIMACS10 40,174 40,174 281,662 Random Unweighted Graph 2011 MATLAB Rutherford Boeing Matrix Market
2643 vsp_p0291_seymourl_iiasa DIMACS10 10,498 10,498 107,736 Random Unweighted Graph 2011 MATLAB Rutherford Boeing Matrix Market
2642 vsp_msc10848_300sep_100in_1Kout DIMACS10 21,996 21,996 2,442,056 Random Unweighted Graph 2011 MATLAB Rutherford Boeing Matrix Market
2641 vsp_model1_crew1_cr42_south31 DIMACS10 45,101 45,101 379,952 Random Unweighted Graph 2011 MATLAB Rutherford Boeing Matrix Market
2640 vsp_mod2_pgp2_slptsk DIMACS10 101,364 101,364 778,736 Random Unweighted Graph 2011 MATLAB Rutherford Boeing Matrix Market
2639 vsp_finan512_scagr7-2c_rlfddd DIMACS10 139,752 139,752 1,104,040 Random Unweighted Graph 2011 MATLAB Rutherford Boeing Matrix Market
2638 vsp_data_and_seymourl DIMACS10 9,167 9,167 111,732 Random Unweighted Graph 2011 MATLAB Rutherford Boeing Matrix Market
2637 vsp_c-60_data_cti_cs4 DIMACS10 85,830 85,830 482,160 Random Unweighted Graph 2011 MATLAB Rutherford Boeing Matrix Market
2636 vsp_c-30_data_data DIMACS10 11,023 11,023 124,368 Random Unweighted Graph 2011 MATLAB Rutherford Boeing Matrix Market
2635 vsp_bump2_e18_aa01_model1_crew1 DIMACS10 56,438 56,438 601,602 Random Unweighted Graph 2011 MATLAB Rutherford Boeing Matrix Market
2634 vsp_befref_fxm_2_4_air02 DIMACS10 14,109 14,109 196,448 Random Unweighted Graph 2011 MATLAB Rutherford Boeing Matrix Market
2633 vsp_bcsstk30_500sep_10in_1Kout DIMACS10 58,348 58,348 4,033,156 Random Unweighted Graph 2011 MATLAB Rutherford Boeing Matrix Market
2632 vsp_barth5_1Ksep_50in_5Kout DIMACS10 32,212 32,212 203,610 Random Unweighted Graph 2011 MATLAB Rutherford Boeing Matrix Market
2631 wy2010 DIMACS10 86,204 86,204 427,586 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market
2630 wv2010 DIMACS10 135,218 135,218 662,922 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market
2629 wi2010 DIMACS10 253,096 253,096 1,209,404 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market
2628 wa2010 DIMACS10 195,574 195,574 947,432 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market
2627 vt2010 DIMACS10 32,580 32,580 155,598 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market