This repository contains a reference implementation of our SIGMOD 2024 paper (link to paper):
Graph Summarization: Compactness Meets Efficiency. Deming Chu, Fan Zhang, Wenjie Zhang, Ying Zhang, Xuemin Lin. SIGMOD 2024.
Note: If there is any issue, please contact ned.deming.chu@gmail.com
Please cite our paper if you use the code:
@article{chu2024graph,
title={Graph Summarization: Compactness Meets Efficiency},
author={Chu, Deming and Zhang, Fan and Zhang, Wenjie and Zhang, Ying and Lin, Xuemin},
journal={Proceedings of the ACM on Management of Data},
volume={2},
number={3},
pages={1--26},
year={2024},
publisher={ACM New York, NY, USA}
}
- G++
- CMake
- OpenMP
Build with the code below in the project folder.
mkdir build
cd build
cmake ..
make -j
After that, you will get four executable programs.
mags
: serial implementation of Magsmags_dm
: serial implementation of Mags-DMpmags
: parallel implementation of Magspmags_dm
: parallel implementation of Mags-DM
The serial implementation (mags
and mags_dm
) requires one parameter.
- the input graph file path.
The parallel implementation (pmags
and pmags_dm
) requires 1-2 parameters.
- the input graph file path.
- the number of thread (optional, 40 by default)
Input graph: undirected graph; no self-loop; one edge in each line.
The source code of our algorithms is under ./src
:
util.h, util.cpp, global.h
: some helping functions and definitionsgraph.h, graph.cpp
: graph data structuresgsum.h, gsum.cpp
: serial graph summarization algorithmspgsum.h, pgsum.cpp
: parallel graph summarization algorithms/parallel_hashmap
: a hash map implementation (see greg7mdp/parallel-hashmap)
The main programs that runs the algorithms are under ./run