Skip to content

YuWei-CH/Byte-Pi-Cluster

Repository files navigation

Byte Pi Cluster

Overview

The Byte Pi Cluster is a Raspberry Pi-based mini cluster designed for distributed computing and educational purposes. This project aims to provide a platform for learning about clustering, distributed systems, and high-performance computing using low-cost, readily available hardware.

Figures:

3801720189143_.pic.jpg

3771720189137_.pic.jpg

Features

  • Scalable Architecture: Easily expand the cluster by adding more Raspberry Pi nodes.
  • Centralized Management: A headnode for managing the cluster and deploying tasks.
  • Network File System (NFS): Shared storage among all nodes for seamless data access.
  • Static IP Configuration: Ensures reliable network connectivity and simplifies management.
  • FRP: Secure access to each node by headnode. And headnode can be access with FRP service.

Hardware Configuration

  • Headnode: Raspberry Pi 4 with 4GB RAM, acting as the master node.
  • Compute Nodes: Multiple Raspberry Pi 4 devices with 4GB RAM. And a Raspberry Pi 5 devices with 8GB RAM connect with a RX580 GPU
  • Networking: All nodes connected via a network switch.
  • Storage: External 500GB SSD connected to the headnode, shared across the cluster via NFS.
  • GPU: AMD RX580 provides better image&video processing capabilities as well as a potential general-purpose computing power boost.

Software Setup

  • Operating System: Raspbian OS on all nodes.
  • NFS: Network File System for shared storage.
  • Static IPs: Each node is assigned a static IP for consistent network configuration.
  • SSH: Enabled on all nodes for secure access and management.
  • FRP: Allowed public network access without have public IP.
  • GPU Support: GPU acceleration (currently support amd polaris).

Usage

  1. Setup: Follow the setup instructions to configure the Raspberry Pi nodes and connect them to the network.
  2. Deployment: Use the headnode to deploy tasks and manage the cluster.
  3. Expansion: Add new nodes to the cluster as needed by configuring their static IPs and connecting them to the network.

Future TODO:

  1. K8 / SLURM: I want a cluster management or scheduler system
  2. TinyLLM: Maybe we can do some inference work here.
  3. Distributed Training Framework: Is it possible to finetune a LLM use Pi? I may need someting to figure out.

Contact

If you have any questions or need further assistance, you can use Github Issues to raise issues. I'll get back to you as soon as I can. And If you have any good idea or something want to let me know, please feel free to contact me:

Thanks

Thanks for these outstanding open source projects:

Have a nice day !!!

About

Byte, a mini cluster with Raspberry Pi.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published