[go: up one dir, main page]

Skip to content

Latest commit

 

History

History

ssca2

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Introduction
------------

The Scalable Synthetic Compact Applications~2 (SSCA2)
benchmark [1] is comprised of four kernels that operate
on a large, directed, weighted multi-graph. These four graph kernels are
commonly used in applications ranging from computational biology to security.
STAMP focuses on Kernel 1, which constructs an efficient graph data
structure using adjacency arrays and auxiliary arrays.

The transactional version of SSCA2 has threads adding nodes to the graph in
parallel and uses transactions to protect accesses to the adjacency arrays. Since this operation is relatively small, not
much time is spent in transactions. Additionally, the length of the transactions
and the sizes of their read and write sets is relatively small. The amount of
contention is the application is also relatively low as the large number of
graph nodes lead to infrequent concurrent updates of the same adjacency list.

When using this benchmark, please cite [2].

The code for ssca2 is Copyright (C) 1997-2005  David A. Bader.


Compiling and Running
---------------------

To build the application, simply run:

    make -f <makefile>

in the source directory. For example, for the sequential flavor, run:

    make -f Makefile.seq

By default, this produces an executable named "yada", which can then be
run in the following manner:

    ./ssca2 -i <probability_of_inter_clique> \
            -k <data_structure_kind> \
            -l <max_path_length> \
            -p <max_number_of_parallel_edges> \
            -s <problem_scale> \
            -t <number_of_threads> \
            -u <probability_unidirectional> \
            -w <fraction_with_integer_weights>

The following arguments are recommended for simulated runs:

    -s13 -i1.0 -u1.0 -l3 -p3

For non-simulator runs, a larger input can be used:

    -s20 -i1.0 -u1.0 -l3 -p3


References
----------

[1] D. A. Bader and K. Madduri. Design and implementation of the hpcs graph
    analysis benchmark on symmetric multiprocessors. In HiPC Õ05: 12th
    International Conference on High Performance Computing, December 2005. 

[2] C. Cao Minh, J. Chung, C. Kozyrakis, and K. Olukotun. STAMP: Stanford 
    Transactional Applications for Multi-processing. In IISWC '08: Proceedings
    of The IEEE International Symposium on Workload Characterization,
    September 2008.