Distributed ML training

Every idle device, one pool of compute.

PoolIt lets the laptops, workstations and phones your team already owns lend a share of their RAM, CPU and GPU to train machine-learning models together. Owners choose how much to give. PoolIt handles the planning, the math and the network.

Windows · working Linux · working Android · iOS prototypes
36/36 accuracy checks vs PyTorch1.12 TFLOPS FP32 on laptop graphics2.0 TFLOPS FP1691× GPU over one CPU core1.5 GB/s tensor transportUMA memory counted once
The core idea

Move the work to the memory. Never the other way round.

Making a remote machine's RAM look local sounds elegant, but over a real office network it is far too slow to be useful.

PoolIt places pieces of the model where the memory already lives: full replicas on devices that can hold them, model stages or optimizer state on the rest. Only compressed gradients and activations cross the network. Training data never moves; each device regenerates its own slice from a shared seed.

How it works

Four lanes from spare hardware to a trained model

01

Install a node

A small tray app on each machine. Nodes find each other on the local network and agree on a coordinator.

02

Set a budget

Each owner caps RAM, CPU, GPU and network use, and can contribute only on AC power or only while the machine is idle.

03

Submit a job

Pick a model, optimizer and batch size. The planner splits each batch across devices in proportion to their measured speed.

04

Train together

Devices compute in parallel and swap compressed updates. Loss, accuracy and per-device timing stream live to the dashboard.

Measured, not promised

Depth markers from the current build

Every figure comes from a benchmark file produced in October 2026 on a single Intel Core i7-1165G7 laptop with integrated Iris Xe graphics.

AccuracyA136/36Checks passed vs PyTorchLosses, gradients and weights match on CPU and GPU. Largest loss gap: 0.0000024.
GPU peakG11.12 TFFP32 on laptop graphics2.0 TFLOPS in FP16, on the integrated GPU most office laptops already have.
Speed-upS191×GPU over one CPU coreLarge model, batch 512: 16,908 vs 186 samples per second.
TransportT11.5 GB/sTensor transfer speedFramed, checksummed transfers reach 73% of the raw TCP ceiling (Windows, same-machine test).

Training throughput · large model · batch 512

samples / second

CPU, 1 thread
186
CPU, 2 threads
302
CPU, 4 threads
530
Iris Xe GPU (Vulkan)
16,908

Baseline run of 1 October 2026, before the hand-tuned AVX2/AVX-512 CPU kernels landed. CPU numbers are a floor, not a ceiling.

Try it

Build a pool. Watch the honest math.

Integrated GPUs and phones use system RAM as GPU memory. A naive tally counts that memory twice and promises capacity that isn't there. PoolIt's planner counts it once.

Example devices. Toggle them and drag each owner's share.

Your pool

0 GBpooled memory, counted by PoolIt
0 GBwhat a naive tally claims
The dashboard

See every device, every job, every millisecond

A local dashboard shows the pool's topology, each member's contribution, and live training curves with a per-device split of compute time and network time.

PoolIt Pool view: totals for pooled memory, GPU memory, compute, devices and throughput; a topology graph linking a Windows laptop, its Linux subsystem and an Android phone; and a card per member.
Pool view: members, link speeds and how much of each device is in use.
PoolIt job detail: loss and accuracy curves, a throughput chart, and a worker table with batch share, step time and communication time per device.
Job view: loss, accuracy, throughput and per-worker timing.

Screenshots use sample data to show a three-device pool.

Owners stay in control

Contributing never gets in the way of real work

Hard limits, enforced by the OS

On Windows the node runs inside a Job Object, so RAM, CPU and network caps are enforced by the operating system, not by good intentions.

Backs off automatically

PoolIt watches battery, temperature, fullscreen apps and idle time, and pauses or shrinks its share when the owner needs the machine.

Encrypted between devices

Nodes authenticate each other and encrypt traffic with the Noise protocol framework, built on the operating system's own crypto.

Your data stays put

Training data is never shipped across the network. Workers regenerate their own slice of the dataset from a shared seed.

Survives devices leaving

Checkpoints and stale-update rejection mean a laptop closing its lid slows a job down instead of breaking it.

No ML framework required

PoolIt's engine is its own C++ core with CPU and Vulkan backends. Nothing to install on each device beyond the node itself.

Where it runs

One core, every device you own

A single portable C++20 core runs everywhere. Each platform adds a thin layer for its OS and its GPU.

WORKING

Windows

CPU (AVX2, AVX-512) and any Vulkan GPU, integrated graphics included

WORKING

Linux

CPU and Vulkan GPU, including WSL2

PROTOTYPE

Android

CPU (NEON) and Vulkan on phone GPUs

PROTOTYPE

iOS · iPadOS

Metal on Apple GPUs

PLANNED

macOS

Metal

Models fully connected (MLP) Optimizers SGD · momentum · AdamW Sync data parallel · DiLoCo Compression fp16 · int8 Inference after training
Work with us

Run a pilot on your own fleet

If your team has laptops, workstations or test phones that sit idle for hours a day, a pilot shows how much training capacity they add up to, measured on your hardware and your network.

devs@meshsnap.live
  • We install PoolIt nodes on a handful of your machines, with budgets you choose.
  • We benchmark each device and every link between them, and report the pool's real capacity.
  • We train a model you care about and compare time and cost against your current setup.
  • You keep the measurements, whatever you decide.