• 09/03/2020
  • Public Content

SSCA2 Graph Sample

SSCA, or Scalable Synthetic Compact Application, is a collection of kernels applied to a weighted, directed graph. The output of each kernel is the input to the next.
  • Kernel 1: generate the graph randomly
  • Kernel 2: using the generated graph, find vertex pairs with largest integer weight and place them in an edge list
    S
  • Kernel 3: create a list of sub-graphs of all the paths of length SubGraphPathLength that start with an edge in
    S
  • Kernel 4: find the set of vertices in the graph with the highest Betweenness Centrality score, or shortest path enumeration-based centrality metric
This sample looks particularly at kernel 4. The betweenness centrality is calculated for each vertex in the graph, using the number of shortest paths between two vertices
s
and
t
and the number of those paths that pass through the vertex of interest
v
. Specifically, the betweenness centrality of a vertex
v
is the ratio of the number of paths from
s
to
t
that pass through
v
and the total number of paths from
s
to
t
. The results from kernel 3 serve as the inputs for
s
and
t
.
While the implementations of kernels 1-3 are interesting in their own right, this sample focuses on kernel 4. If you would like to learn more about these other kernels, and see OpenMP* implementations of all kernels, you can visit the HPC Graph Analysis website to download a research paper on the sample and the sample's unmodified source code.
Mention original author if it is external to Intel, and also a link to the samples page, e.g. "Click here for a more in-depth discussion about the sample as well as more information about the design choices of this sample."
  • System Requirements
  • Hardware:
    • Any Intel processor with AVX support like 2nd Generation Intel Core™ i3, i5, or i7 processors and Intel Xeon® E3 or E5 processor family, or newer
    For Microsoft Windows*:
    • Microsoft Visual Studio 2010* or 2012* standard edition or above
    • Intel® C++ Composer XE 2013 SP1 for Windows
    For Linux*:
    • GNU* GCC 4.5 or newer
    • Intel® C++ Composer XE 2013 SP1 for Linux*
1

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserverd for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804