qyin / terrace

Terrace: A Hierarchical Graph Container for Skewed Dynamic Graphs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Terrace

Terrace: A Hierarchical Graph Container for Skewed Dynamic Graphs

This work appeared at SIGMOD 2021. If you use this software please cite us:

@inproceedings{PandeyWHB21,
  author    = {Prashant Pandey and
               Brian Wheatman and
               Helen Xu and
               Aydin Buluc},
  title     = {Terrace: A Hierarchical Graph Container for Skewed Dynamic Graphs},
  booktitle={Proceedings of the 2021 ACM international conference on Management of Data},
  year      = {2021},
}

Overview

Terrace is a system for streaming graphs that uses a hierarchical data structure design to store a vertex’s neighbors in different data structures depending on the degree of the vertex. This multi-level structure enables Terrace to dynamically partition vertices based on their degrees and adapt to skewness in the underlying graph.

Build

We implemented Terrace as a C++ library parallelized using Cilk Plus and the Tapir branch of the LLVM compiler.

We recommend compiling Terrace with Clang++. We downloaded OpenCilk from here. For recent updates regarding OpenCilk please check here.

make graph_bm_no_update
./graph_bm_no_update -src 9 -maxiters 5 -f data/slashdot.adj 

Contributing

Contributions via GitHub pull requests are welcome.

Authors

About

Terrace: A Hierarchical Graph Container for Skewed Dynamic Graphs

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:C++ 80.8%Language:C 11.6%Language:Shell 3.3%Language:Python 2.4%Language:Makefile 1.2%Language:HTML 0.6%Language:CMake 0.1%