Skip to main content
Open Source · Rust + MPI + WebAssembly

Distributed Graph
Processing System

A full-stack system for distributed graph algorithm execution — Rust MPI backend, WebAssembly-accelerated browser parsing, and GPU-rendered WebGL visualization.

9Algorithms
3KMax Nodes
10×WASM Speedup
3Docker Services

How It Works

Three layers working in concert — browser WASM, REST API, and an MPI cluster.

Browser
React + Vite (Main Thread)
Reagraph / WebGL / Three.js
Web Worker → WASM Parser
compute_node_styles (WASM)
HTTP / REST
Docker Network (172.28.1.0/24)
mpi-master · Rocket :8000
MPI Rank 0 — runs + merges
mpi-worker · MPI Rank 1+
bincode over TCP/MPI

Built for Performance

Every layer is optimized — from network-distributed algorithms to sub-millisecond browser rendering.

MPI Distributed Computing

Graph algorithms execute across a Docker cluster using MPI. Master and worker nodes communicate via bincode-serialized messages over TCP.

🦀

Rust End-to-End

Both the backend cluster and WebAssembly frontend layer are written in Rust — type safety, zero GC, and memory safety from server to browser.

🔷

WebGL Visualization

Reagraph (Three.js) renders graphs in WebGL with GPU acceleration. Supports 3,000 nodes across five layout algorithms with smooth step animation.

🔩

WebAssembly Parser

Graph parsing and style computation run in a Web Worker via WASM — ~10× faster than JavaScript with zero GC pressure.

🗂️

Nine Algorithms

BFS, DFS, Dijkstra, A*, Bellman-Ford, Kruskal MST, PageRank, Kosaraju SCC, and Topological Sort — all visualized with step-by-step animation.

🐳

One-Command Deploy

Three Docker services (frontend, mpi-master, mpi-worker) launched with a single docker compose up --build command.

Nine Graph Algorithms

All algorithms run distributed across the MPI cluster and animate step-by-step in the browser.

Traversal

BFS

Level-order traversal

Traversal

DFS

Iterative stack-based

Shortest Path

Dijkstra

Binary heap, O((V+E) log V)

Shortest Path

A*

Heuristic shortest path

Shortest Path

Bellman-Ford

Negative cycle detection

Graph

Kruskal MST

Union-Find with path compression

Graph

PageRank

Damping d=0.85, 30 iterations

Graph

Kosaraju SCC

Iterative two-pass DFS

Graph

Topological Sort

Kahn's BFS-based algorithm

Up and Running in Minutes

Clone the repo and launch the full stack with a single command.

1

Clone the Repository

Get the source code from GitHub.

# Clone the repo
git clone https://github.com/sinhaparth5/distributed-graph-system
cd distributed-graph-system
2

Build and Launch

Docker Compose builds all three services and starts them.

docker compose up --build
3

Open the App

Frontend on port 3000, API on port 8000.

# Frontend
http://localhost:3000

# API
http://localhost:8000/health
4

Upload a Graph File

Edge list or adjacency list format, up to ~100K edges.

# Edge list format
# source  target  [weight]
0 1 2.5
0 2 1.0
1 3
2 3 0.5
5

Select an Algorithm

Pick any of the nine algorithms, enter node IDs if needed, and click Execute.

# POST /process_file
{
  "algorithm": "dijkstra",
  "start_node": 0
}

Benchmarks

Measured on a 100K-edge graph file with standard hardware.

~80ms
WASM Parse Time
100K edges vs ~800ms in JS
<2ms
Node Style Compute
3K nodes per animation tick
~12ms
MPI Overhead
50K-edge graph, local Docker

Ready to explore the system?

Read the full architecture docs or clone the repo and start experimenting.