Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wheatman/Packed-Compressed-Sparse-Row
Dynamic data structure for sparse graphs.
https://github.com/wheatman/Packed-Compressed-Sparse-Row
Last synced: 30 days ago
JSON representation
Dynamic data structure for sparse graphs.
- Host: GitHub
- URL: https://github.com/wheatman/Packed-Compressed-Sparse-Row
- Owner: wheatman
- License: mit
- Created: 2018-09-28T04:44:41.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-04-03T02:37:07.000Z (8 months ago)
- Last Synced: 2024-05-23T00:11:03.828Z (7 months ago)
- Language: C++
- Homepage:
- Size: 14.6 KB
- Stars: 26
- Watchers: 9
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-dynamic-graphs - PCSR
README
# Packed-Compressed-Sparse-Row
Dynamic data structure for sparse graphs.
compile with `g++ -std=c++11 PCSR.cpp`
```
// initialize the structure with how many nodes you want it to start with
PCSR pcsr = PCSR(10);// add some edges
for (int i = 0; i < 5; i++) {
pcsr.add_edge(i, i, 1);
}
// update the values of some edgesfor (int i = 0; i < 5; i++) {
pcsr.add_edge_update(i, i, 2);
}// print out the graph
pcsr.print_graph();
```For more information see https://ieeexplore.ieee.org/abstract/document/8547566
Please cite as:
```
@inproceedings{wheatman2018packed,
title={Packed Compressed Sparse Row: A Dynamic Graph Representation},
author={Wheatman, Brian and Xu, Helen},
booktitle={2018 IEEE High Performance extreme Computing Conference (HPEC)},
pages={1--7},
year={2018},
organization={IEEE}
}
```# Subsequent Papers and Projects
This work was continued and made parallel in the paper [A Parallel Packed Memory Array to Store Dynamic Graphs](https://epubs.siam.org/doi/abs/10.1137/1.9781611976472.3)The Parallel PMA was later used in the larger Terrace system. More details can be found in [Terrace: A Hierarchical Graph Container for Skewed Dynamic Graphs](https://dl.acm.org/doi/abs/10.1145/3448016.3457313). The code for terrace which includes the Parallel PMA can be found at https://github.com/PASSIONLab/terrace.
Many ideas from this work also went into the creation of [Streaming Sparse Graphs using Efficient Dynamic Sets](https://ieeexplore.ieee.org/abstract/document/9671836) for which the code can be found at https://github.com/wheatman/SSTGraph.
All of these systems are parallel and much faster than the original PCSR system, but are more complex.
PCSR is not being updated, but I will review any pull requests.