High-performance parallel graph processing engine (C++ + Python)
Project description
PARAGON — Parallel Graph Engine
PARAGON (PARAllel Graph ENgine) is a high-performance C++ parallel graph processing engine that implements and benchmarks core graph algorithms on multicore CPUs.
The project focuses on:
- efficient parallel execution
- algorithm-level parallelism
- scalable graph analytics
- reproducible performance evaluation
Project Structure
PARAGON/
├── include/ # Public headers
├── src/ # Core engine & algorithms
├── examples/ # Usage examples
├── benchmark/ # Performance benchmarks
├── tests/ # Unit tests
├── CMakeLists.txt
└── README.md
Implemented Algorithms
| Algorithm | Parallel Strategy | Use Case |
|---|---|---|
| Breadth-First Search (BFS) | Frontier-level parallelism | Reachability, traversal |
| PageRank (Pull) | Vertex-level parallelism | Ranking, influence |
| PageRank (Push/BFS-style) | Edge-level parallelism | Large web graphs |
| Connected Components | Hooking + pointer jumping | Clustering, segmentation |
| Single Source Shortest Path (SSSP) | Parallel edge relaxation | Routing, network analysis |
| Triangle Counting | Vertex-level + intersection | Graph analytics, clustering |
Parallelism Model
PARAGON uses a lightweight parallel execution engine based on:
- static work partitioning
- thread-level parallelism
- per-thread local aggregation
- barrier synchronization when required
Parallelism is applied at different levels depending on the algorithm:
- Vertex-level: PageRank, Triangle Counting
- Edge-level: SSSP, PageRank (push)
- Frontier-level: BFS
- Structure-level: Connected Components
🛠️ Build & Installation (CMake)
Requirements
- C++17 compatible compiler (GCC / MinGW)
- CMake ≥ 3.16
Build Steps
git clone https://github.com/saketjha34/PARAGON.git
cd PARAGON
mkdir build
cd build
cmake -G "MinGW Makefiles" ..
cmake --build .
All executables are generated in the build/ directory.
Running Tests
cd build
run_tests
Running Examples
example_bfs
example_pagerank
example_parallel_pagerank_bfs
example_connected_components
example_sssp
example_triangle_count
Each example uses a deterministic graph definition.
Running Benchmarks
benchmark_sssp
benchmark_pagerank
benchmark_connected_components
benchmark_triangle_count
Benchmark Results
Benchmarks were executed using 8 threads on a multicore CPU.
Single Source Shortest Path (SSSP)
V = 3000, E = 10000
| Version | Time |
|---|---|
| Sequential | 398 ms |
| Parallel | 5 ms |
Speedup: ~79×
Parallelism is applied through concurrent edge relaxations and early convergence.
PageRank
V = 20, E = 20,000,000
| Version | Time |
|---|---|
| Sequential | 3026 ms |
| Parallel | 1180 ms |
Speedup: ~2.6×
Parallelism is applied at the vertex and edge levels with synchronization per iteration.
Connected Components
V = 20, E = 20,000,000
| Version | Time |
|---|---|
| Sequential | 1451 ms |
| Parallel | 876 ms |
Speedup: ~1.65×
Uses a parallel hooking and pointer-jumping strategy.
Triangle Counting
V = 20, E = 200,000
| Version | Time |
|---|---|
| Sequential | 12478 ms |
| Parallel | 3598 ms |
Speedup: ~3.4×
Parallelism is applied through independent adjacency list intersections.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file paragon_engine-0.1.0.tar.gz.
File metadata
- Download URL: paragon_engine-0.1.0.tar.gz
- Upload date:
- Size: 26.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49bb8dc747b35435a4b0248045b68c2ac6378996abf7b202b6866824f4f26c34
|
|
| MD5 |
7d314600cd52fbedba1e183d41d00be7
|
|
| BLAKE2b-256 |
abd6a69731b6a7cfe55b69d5da5fa74a217345d4b49270a09b4d132b05b39576
|
File details
Details for the file paragon_engine-0.1.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: paragon_engine-0.1.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 118.4 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b684f30ff4d4c5f39e763659a52a2d4fc73f9530bbb19d96d3d3e4e847ab36f1
|
|
| MD5 |
55e2a7b6e9ffaf5bb4736d57fc2b1486
|
|
| BLAKE2b-256 |
5c2cb76154f7b8fda6807ddd046462d34e947bfd67eba87e3542b3dd1381af54
|