Skip to main content

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

paragon_engine-0.1.0.tar.gz (26.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

paragon_engine-0.1.0-cp311-cp311-win_amd64.whl (118.4 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Hashes for paragon_engine-0.1.0.tar.gz
Algorithm Hash digest
SHA256 49bb8dc747b35435a4b0248045b68c2ac6378996abf7b202b6866824f4f26c34
MD5 7d314600cd52fbedba1e183d41d00be7
BLAKE2b-256 abd6a69731b6a7cfe55b69d5da5fa74a217345d4b49270a09b4d132b05b39576

See more details on using hashes here.

File details

Details for the file paragon_engine-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for paragon_engine-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b684f30ff4d4c5f39e763659a52a2d4fc73f9530bbb19d96d3d3e4e847ab36f1
MD5 55e2a7b6e9ffaf5bb4736d57fc2b1486
BLAKE2b-256 5c2cb76154f7b8fda6807ddd046462d34e947bfd67eba87e3542b3dd1381af54

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page