Skip to main content

A lightweight volunteer distributed computing framework for scientific workloads.

Project description

BeeMesh

BeeMesh is a lightweight volunteer distributed computing framework designed for scientific workloads. It allows a central Hive coordinator to distribute work across multiple Bee workers running on heterogeneous machines such as laptops, desktops, or clusters.

The goal of BeeMesh is to make it easy to execute distributed scientific simulations without complex cluster infrastructure.


Core Idea

A central Hive manages a queue of tasks. Worker nodes called Bees connect to the Hive, request work, execute tasks, and return results.

                +------------------+
                |     BeeMesh      |
                |       Hive       |
                |   Task Queue     |
                +------------------+
                    ↑            ↑
                request        request
                    |            |
                +-------+     +-------+
                | Bee1  |     | Bee2  |
                +-------+     +-------+
                    |             |
                execute        execute
                    |             |
                result         result
            └──────submit_result──────┘

Whichever worker asks first receives the next available task.


Architecture

BeeMesh consists of three main components:

Hive (Coordinator)

The Hive is a FastAPI server responsible for:

  • worker registration
  • job submission
  • task queue management
  • result collection
  • cluster monitoring

Bees (Workers)

Workers connect to the Hive and continuously request tasks using long polling.

                +------------------+
                |      BeeMesh     |
                |       Hive       |
                |    Task Queue    |
                +------------------+
                   ▲            ▲
                   │            │
              long poll    long poll
                   │            │
              +--------+   +--------+
              | Bee 1  |   | Bee 2  |
              +--------+   +--------+
                   │            │
                execute      execute
                   │            │
                   └──submit_result──► Hive

Client

A client submits a high‑level job to the Hive. The Hive decomposes the job into smaller tasks that can be executed in parallel.

                Client
                  │
                  │ submit_job (global simulation)
                  ▼
          +---------------------+
          |      BeeMesh Hive   |
          |  job decomposition  |
          +---------------------+
                    │
                    │ create tasks
                    ▼
                 Task Queue
                    │
             ┌──────┴──────┐
             │             │
           Bee1           Bee2
             │             │
           compute       compute
             │             │
             └──submit_result──► Hive

Features

  • Lightweight distributed task execution
  • Worker capability reporting (CPU, RAM)
  • Automatic job decomposition
  • Live cluster monitoring via CLI
  • Progress bars for job execution
  • Cluster throughput metrics

Example CLI Usage

Start the Hive:

beemesh hive

Start workers:

beemesh bee --hostname worker1
beemesh bee --hostname worker2

Submit a distributed diffusion job:

beemesh submit-diffusion --nx 512 --ny 512 --blocks-x 4 --blocks-y 4

Monitor the cluster:

beemesh monitor

Project Vision

BeeMesh aims to provide a simple framework for:

  • distributed scientific simulations
  • volunteer computing
  • heterogeneous cluster execution

Future work includes support for domain‑decomposed PDE solvers, enabling distributed simulations across many machines.


License

MIT License

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

bee_mesh-0.1.1.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

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

bee_mesh-0.1.1-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file bee_mesh-0.1.1.tar.gz.

File metadata

  • Download URL: bee_mesh-0.1.1.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for bee_mesh-0.1.1.tar.gz
Algorithm Hash digest
SHA256 560dc5b41fe5cac89734d57394d65e8858bd66b13bc298551b19eaa19da5cb2a
MD5 c789cfc4ca60a8ce9ace1d19c8e476a0
BLAKE2b-256 281cfd650d019b81499eeeb9fdee1c51bd8229befed4d6d838144c92e54d18d2

See more details on using hashes here.

File details

Details for the file bee_mesh-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: bee_mesh-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for bee_mesh-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ed44544fc576d7ceff756d300cb63df47c9dd40c5d3ae72a8f6fb20f7638a669
MD5 d52cf1b3a78037dbec733cca6ba30ad3
BLAKE2b-256 bb57ecc5cdd7bcbc3f9d00a6defd820782e07af7a4c9cd2cebdaa66e44217a94

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