No description, website, or topics provided.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bfs
lib
.gitmodules
.travis.yml
README.md

README.md

Stingerwrapper-Benchmarks

Build Status

This repository defines benchmarks of running BFS for RMAT graphs for STINGER (using Dynograph), StingerWrapper.jl, and LightGraphs.jl.

Building the benchmark suite

Set up

git clone --recursive https://github.com/rohitvarkey/Stingerwrapper-Benchmarks or

git clone https://github.com/rohitvarkey/Stingerwrapper-Benchmarks
cd Stingerwrapper-Benchmarks
git submodule update --init

Setting up the Julia packages

Pkg.add("LightGraphs")
Pkg.add("BenchmarkTools")
Pkg.add("JLD")
Pkg.add("LightGraphs")
Pkg.add("Plots")
Pkg.clone("https://github.com/rohitvarkey/UnsafeAtomics.jl.git")
Pkg.clone("https://github.com/rohitvarkey/StingerWrapper.jl.git")

Building dynograph and stinger

cd lib/stinger-dynograph
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release .. && make -j$(nproc) dynograph
export DYNOGRAPH_PATH="$(pwd)/lib/stinger-dynograph/build"
export STINGER_LIB_PATH="$DYNOGRAPH_PATH/lib/stinger/lib"

Running the Benchmarks

You will need to be on the set_initial_edges branch of StingerWrapper for these benchmarks.

cd into the bfs directory and start julia. Then run the following commands inside julia.

The generate_scripts.jl Julia script generates the RMAT graphs, the scripts to run the benchmarks and starts the benchmarks. By default, it assumes you are running this is a HPC cluster with qsub. To run on such a cluster

include("generate_scripts.jl")
runbench([2^i for i=0:6], 10:28, 16, useremail="you@email.com", queue="your-queue")

You can also use bash to run these scripts by calling

include("generate_scripts.jl")
runbench([2^i for i=0:6], 10:28, 16, qsub=false)

After that run bash scripts/master_script.

Analyzing the benchmarks

Running the analyze.jl script in bfs/ will collect the results of the benchmarks from the output directories and create some plots.

Alternatively, running collect_data.jl in bfs/ will create csv dumps of the outputs.