Inspiration

We saw classmates paying hundreds of dollars for cloud compute just to train course projects, while our gaming laptops sat idle most of the day. The irony was obvious - we had the compute power collectively, just not individually. We built Neurogrid to solve this: what if everyone could pool their spare CPU cycles to train models together? No cloud bills, no waiting, just collaborative compute.

What it does

Neurogrid is a peer-to-peer ML training platform that turns any computer into part of a distributed training cluster. Tenants upload their PyTorch models and datasets through a simple web interface. Our coordinator automatically discovers available peer nodes, splits training batches across them, aggregates gradients, and handles failures. Peers just run a lightweight Docker container - Neurogrid handles all the distributed systems complexity. The result: train models 5-10x faster than a single laptop, at zero cost.

How we built it

We built Neurogrid with a microservices architecture:

  • Vultr hosts our FastAPI coordinator service that orchestrates the entire network
  • MongoDB Atlas handles real-time peer registration, job queuing, and performance metrics
  • PyTorch Distributed powers the actual gradient synchronization using the Gloo backend for CPU training
  • Docker ensures consistent Python environments across heterogeneous peer hardware
  • WebSockets enable real-time heartbeat monitoring and job status updates
  • React dashboard visualizes active nodes, training progress, and resource utilization

Accomplishments that we're proud of

It actually works! We successfully trained real models (MNIST, CIFAR-10) distributed across 4+ laptops Sub-second job scheduling - MongoDB + WebSockets gives near-instant peer discovery and work assignment Fault tolerance - peers can join/leave mid-training without killing the job Clean abstractions - tenants just write normal PyTorch code, zero distributed systems knowledge needed Real-time dashboard that makes invisible distributed training completely visible and intuitive Built a genuinely useful tool we'll keep using after the hackathon

What we learned

Distributed systems are hard. Network partitions, clock skew, partial failures - we gained massive respect for production distributed training platforms like Ray and Horovod.

PyTorch's distributed package is powerful but assumes you know what you're doing. Understanding world size, ranks, rendezvous, and backend tradeoffs required deep dives into documentation.

Database choice matters. MongoDB's flexible schema was perfect for storing varied peer hardware specs, and Atlas triggers let us implement reactive node rebalancing without custom polling logic.

Infrastructure-as-code saves lives. Deploying coordinator + workers on Vultr with scripted configuration meant we could tear down and rebuild our entire platform in minutes when things broke.

Good monitoring is everything. Half our debugging time vanished once we built proper dashboards showing what each node was doing in real-time.

Built With

Share this project:

Updates