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 -jAfter 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