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
2456 caidaRouterLevel DIMACS10 192,244 192,244 1,218,132 Undirected Graph 2011 MATLAB Rutherford Boeing Matrix Market
2457 chesapeake DIMACS10 39 39 340 Undirected Graph 2011 MATLAB Rutherford Boeing Matrix Market
2458 road_central DIMACS10 14,081,816 14,081,816 33,866,826 Undirected Graph 2011 MATLAB Rutherford Boeing Matrix Market
2459 road_usa DIMACS10 23,947,347 23,947,347 57,708,624 Undirected Graph 2011 MATLAB Rutherford Boeing Matrix Market
2460 citationCiteseer DIMACS10 268,495 268,495 2,313,294 Undirected Graph 2008 MATLAB Rutherford Boeing Matrix Market
2461 coAuthorsCiteseer DIMACS10 227,320 227,320 1,628,268 Undirected Graph 2008 MATLAB Rutherford Boeing Matrix Market
2462 coAuthorsDBLP DIMACS10 299,067 299,067 1,955,352 Undirected Graph 2008 MATLAB Rutherford Boeing Matrix Market
2463 coPapersCiteseer DIMACS10 434,102 434,102 32,073,440 Undirected Graph 2008 MATLAB Rutherford Boeing Matrix Market
2464 coPapersDBLP DIMACS10 540,486 540,486 30,491,458 Undirected Graph 2008 MATLAB Rutherford Boeing Matrix Market
2465 delaunay_n10 DIMACS10 1,024 1,024 6,112 Undirected Graph 2011 MATLAB Rutherford Boeing Matrix Market
2466 delaunay_n11 DIMACS10 2,048 2,048 12,254 Undirected Graph 2011 MATLAB Rutherford Boeing Matrix Market
2467 delaunay_n12 DIMACS10 4,096 4,096 24,528 Undirected Graph 2011 MATLAB Rutherford Boeing Matrix Market
2468 delaunay_n13 DIMACS10 8,192 8,192 49,094 Undirected Graph 2011 MATLAB Rutherford Boeing Matrix Market
2469 delaunay_n14 DIMACS10 16,384 16,384 98,244 Undirected Graph 2011 MATLAB Rutherford Boeing Matrix Market
2470 delaunay_n15 DIMACS10 32,768 32,768 196,548 Undirected Graph 2011 MATLAB Rutherford Boeing Matrix Market
2471 delaunay_n16 DIMACS10 65,536 65,536 393,150 Undirected Graph 2011 MATLAB Rutherford Boeing Matrix Market
2472 delaunay_n17 DIMACS10 131,072 131,072 786,352 Undirected Graph 2011 MATLAB Rutherford Boeing Matrix Market
2473 delaunay_n18 DIMACS10 262,144 262,144 1,572,792 Undirected Graph 2011 MATLAB Rutherford Boeing Matrix Market
2474 delaunay_n19 DIMACS10 524,288 524,288 3,145,646 Undirected Graph 2011 MATLAB Rutherford Boeing Matrix Market
2475 delaunay_n20 DIMACS10 1,048,576 1,048,576 6,291,372 Undirected Graph 2011 MATLAB Rutherford Boeing Matrix Market