Group DIMACS10

Group Description
10th DIMACS Implementation Challenge

Updated July 2012

http://www.cc.gatech.edu/dimacs10/index.shtml
http://www.cise.ufl.edu/research/sparse/dimacs10

As stated on their main website (
http://dimacs.rutgers.edu/Challenges/ ), 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
        for?

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
        generators.

    * 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
        applications.

    * 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
      NP-hard.

    * 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
http://www.cise.ufl.edu/research/sparse/dimacs10 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
    graph.

    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:

    G_n_pin_pout
    preferentialAttachment
    smallworld

    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
    http://dx.doi.org/10.1109/IPDPS.2010.5470485

--------------------------------------------------------------------------------
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 (
    http://www.upb.de/cs/schaum/benchmark.html ) 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.  ( http://www.graph500.org/Specifications.html )

    There are 12 graphs in the DIMACS10 test set at
    http://www.cc.gatech.edu/dimacs10/index.shtml .  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-simple-logn16

    kronecker/kron_g500-logn17             DIMACS10/kron_g500-logn17
    kronecker/kron_g500-simple-logn17

    kronecker/kron_g500-logn18             DIMACS10/kron_g500-logn18
    kronecker/kron_g500-simple-logn18

    kronecker/kron_g500-logn19             DIMACS10/kron_g500-logn19
    kronecker/kron_g500-simple-logn19

    kronecker/kron_g500-logn20             DIMACS10/kron_g500-logn20
    kronecker/kron_g500-simple-logn20

    kronecker/kron_g500-logn21             DIMACS10/kron_g500-logn21
    kronecker/kron_g500-simple-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
    305-309.

    "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];
      end

      %% 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.
    http://www.cc.gatech.edu/dimacs10/archive/numerical-overview-Erlangen.pdf

    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.
    http://dx.doi.org/10.1109/IPDPS.2010.5470485

--------------------------------------------------------------------------------
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
    http://download.geofabrik.de and have been converted for DIMACS10
    by Moritz Kobitzsch (kobitzsch at kit.edu) 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
    ( http://staffweb.cms.gre.ac.uk/~wc06/partition/ ).

    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
    solvers.

    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 81 - 100 of 151 in total
Id Name Group Rows Cols Nonzeros Kind Date Download File
2490 kron_g500-logn17 DIMACS10 131,072 131,072 10,228,360 Undirected Multigraph 2010 MATLAB Rutherford Boeing Matrix Market
2491 kron_g500-logn18 DIMACS10 262,144 262,144 21,165,908 Undirected Multigraph 2010 MATLAB Rutherford Boeing Matrix Market
2492 kron_g500-logn19 DIMACS10 524,288 524,288 43,562,265 Undirected Multigraph 2010 MATLAB Rutherford Boeing Matrix Market
2493 kron_g500-logn20 DIMACS10 1,048,576 1,048,576 89,239,674 Undirected Multigraph 2010 MATLAB Rutherford Boeing Matrix Market
2494 kron_g500-logn21 DIMACS10 2,097,152 2,097,152 182,082,942 Undirected Multigraph 2010 MATLAB Rutherford Boeing Matrix Market
2597 ks2010 DIMACS10 238,600 238,600 1,121,798 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market
2598 ky2010 DIMACS10 161,672 161,672 787,778 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market
2599 la2010 DIMACS10 204,447 204,447 980,634 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market
2515 luxembourg_osm DIMACS10 114,599 114,599 239,332 Undirected Graph 2010 MATLAB Rutherford Boeing Matrix Market
2600 ma2010 DIMACS10 157,508 157,508 776,610 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market
2601 md2010 DIMACS10 145,247 145,247 700,378 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market
2602 me2010 DIMACS10 69,518 69,518 335,476 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market
2603 mi2010 DIMACS10 329,885 329,885 1,578,090 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market
2604 mn2010 DIMACS10 259,777 259,777 1,227,102 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market
2605 mo2010 DIMACS10 343,565 343,565 1,656,568 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market
2607 mt2010 DIMACS10 132,288 132,288 638,668 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market
2608 nc2010 DIMACS10 288,987 288,987 1,416,620 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market
2609 nd2010 DIMACS10 133,769 133,769 625,946 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market
2610 ne2010 DIMACS10 193,352 193,352 913,854 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market
2611 nh2010 DIMACS10 48,837 48,837 234,550 Undirected Weighted Graph 2010 MATLAB Rutherford Boeing Matrix Market