All Projects → sbeamer → Gapbs

sbeamer / Gapbs

Licence: other
GAP Benchmark Suite

Projects that are alternatives of or similar to Gapbs

HeCBench
software.intel.com/content/www/us/en/develop/articles/repo-evaluating-performance-productivity-oneapi.html
Stars: ✭ 85 (-48.48%)
Mutual labels:  benchmark, openmp
gardenia
GARDENIA: Graph Analytics Repository for Designing Efficient Next-generation Accelerators
Stars: ✭ 22 (-86.67%)
Mutual labels:  graph-algorithms, openmp
Evalne
Source code for EvalNE, a Python library for evaluating Network Embedding methods.
Stars: ✭ 67 (-59.39%)
Mutual labels:  graph-algorithms, benchmark
NPB-CPP
NAS Parallel Benchmark Kernels in C/C++. The parallel versions are in FastFlow, TBB, and OpenMP.
Stars: ✭ 18 (-89.09%)
Mutual labels:  benchmark, openmp
Babelstream
STREAM, for lots of devices written in many programming models
Stars: ✭ 121 (-26.67%)
Mutual labels:  openmp, benchmark
Criterion.rs
Statistics-driven benchmarking library for Rust
Stars: ✭ 2,153 (+1204.85%)
Mutual labels:  benchmark
Chineseblue
Chinese Biomedical Language Understanding Evaluation benchmark (ChineseBLUE)
Stars: ✭ 149 (-9.7%)
Mutual labels:  benchmark
Fast Crystal
💨 Writing Fast Crystal 😍 -- Collect Common Crystal idioms.
Stars: ✭ 140 (-15.15%)
Mutual labels:  benchmark
Sparkling Graph
SparklingGraph provides easy to use set of features that will give you ability to proces large scala graphs using Spark and GraphX.
Stars: ✭ 139 (-15.76%)
Mutual labels:  graph-algorithms
Are We Fast Yet
Are We Fast Yet? Comparing Language Implementations with Objects, Closures, and Arrays
Stars: ✭ 161 (-2.42%)
Mutual labels:  benchmark
Kubestone
Performance benchmarks for Kubernetes
Stars: ✭ 159 (-3.64%)
Mutual labels:  benchmark
Php Orm Benchmark
PHP ORM Benchmark
Stars: ✭ 147 (-10.91%)
Mutual labels:  benchmark
Algorithms
A collection of common algorithms and data structures implemented in java, c++, and python.
Stars: ✭ 142 (-13.94%)
Mutual labels:  graph-algorithms
Sv Benchmarks
Collection of Verification Tasks
Stars: ✭ 158 (-4.24%)
Mutual labels:  benchmark
Ctranslate2
Fast inference engine for OpenNMT models
Stars: ✭ 140 (-15.15%)
Mutual labels:  openmp
Graphtage
A semantic diff utility and library for tree-like files such as JSON, JSON5, XML, HTML, YAML, and CSV.
Stars: ✭ 2,062 (+1149.7%)
Mutual labels:  graph-algorithms
Benchmarks
Comparison tools
Stars: ✭ 139 (-15.76%)
Mutual labels:  benchmark
Awesome Http Benchmark
HTTP(S) benchmark tools, testing/debugging, & restAPI (RESTful)
Stars: ✭ 2,236 (+1255.15%)
Mutual labels:  benchmark
Blue benchmark
BLUE benchmark consists of five different biomedicine text-mining tasks with ten corpora.
Stars: ✭ 159 (-3.64%)
Mutual labels:  benchmark
Metabench
A simple framework for compile-time benchmarks
Stars: ✭ 146 (-11.52%)
Mutual labels:  benchmark

GAP Benchmark Suite Build Status

This is the reference implementation for the GAP Benchmark Suite. It is designed to be a portable high-performance baseline that only requires a compiler with support for C++11. It uses OpenMP for parallelism, but it can be compiled without OpenMP to run serially. The details of the benchmark can be found in the specification.

The GAP Benchmark Suite is intended to help graph processing research by standardizing evaluations. Fewer differences between graph processing evaluations will make it easier to compare different research efforts and quantify improvements. The benchmark not only specifies graph kernels, input graphs, and evaluation methodologies, but it also provides an optimized baseline implementation (this repo). These baseline implementations are representative of state-of-the-art performance, and thus new contributions should outperform them to demonstrate an improvement.

Kernels Included

  • Breadth-First Search (BFS) - direction optimizing
  • Single-Source Shortest Paths (SSSP) - delta stepping
  • PageRank (PR) - iterative method in pull direction
  • Connected Components (CC) - Afforest & Shiloach-Vishkin
  • Betweenness Centrality (BC) - Brandes
  • Triangle Counting (TC) - Order invariant with possible relabelling

Quick Start

Build the project:

$ make

Override the default C++ compiler:

$ CXX=g++-8 make

Test the build:

$ make test

Run BFS on 1,024 vertices for 1 iteration:

$ ./bfs -g 10 -n 1

Additional command line flags can be found with -h

Graph Loading

All of the binaries use the same command-line options for loading graphs:

  • -g 20 generates a Kronecker graph with 2^20 vertices (Graph500 specifications)
  • -u 20 generates a uniform random graph with 2^20 vertices (degree 16)
  • -f graph.el loads graph from file graph.el
  • -sf graph.el symmetrizes graph loaded from file graph.el

The graph loading infrastructure understands the following formats:

Executing the Benchmark

We provide a simple makefile-based approach to automate executing the benchmark which includes fetching and building the input graphs. Using these makefiles is not a requirement of the benchmark, but we provide them as a starting point. For example, a user could save disk space by storing the input graphs in fewer formats at the expense of longer loading and conversion times. Anything that complies with the rules in the specification is allowed by the benchmark.

Warning: A full run of this benchmark can be demanding and should probably not be done on a laptop. Building the input graphs requires about 275 GB of disk space and 64 GB of RAM. Depending on your filesystem and internet bandwidth, building the graphs can take up to 8 hours. Once the input graphs are built, you can delete gapbs/benchmark/graphs/raw to free up some disk space. Executing the benchmark itself will require only a few hours.

Build the input graphs:

$ make bench-graphs

Execute the benchmark suite:

$ make bench-run

Spack

The GAP Benchmark Suite is also included in the Spack package manager. To install:

$ spack install gapbs

How to Cite

Please cite this code by the benchmark specification:

Scott Beamer, Krste Asanović, David Patterson. The GAP Benchmark Suite. arXiv:1508.03619 [cs.DC], 2015.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].