Apple Machine Learning Research has published Minions: A Dynamic and Distributed Virtual GPU Cloud Built on Idle Apple Silicon Devices, a short systems paper that describes how a team pooled the unused GPUs of employees' Macs into an inference cloud. The Apple page and the arXiv paper (submitted October 9, 2026, three pages) are candid that Minions complements centralized GPUs rather than replacing them, and equally candid that the evidence is operational rather than benchmarked.
That makes it a useful, if modest, data point in a theme we have followed all year: pooling consumer hardware for AI, from Mesh LLM splitting large models across a LAN to NVIDIA PAIR turning idle home PCs into a personal cluster.
TL;DR: what readers ask first
| Question | Answer |
|---|---|
| Who wrote it? | Jianhua Li, Yun Xing, Girisha De Silva, Ryan Flint, Kai Yuan and Sean Suchter. |
| What does it do? | Runs inference jobs (embeddings and LLM completions) on idle Macs. |
| Training too? | No. Distributed training is listed as future work. |
| Scheduler? | None central. Executors pull work. |
| Fault tolerance? | Heartbeats every five minutes plus a Watchdog that re-queues lost subtasks. |
| Benchmarks? | None. A qualitative before-and-after table only. |
| Can I run it? | No code link on the Apple or arXiv pages. |
The problem Minions targets
The abstract frames the issue plainly. Centralized GPU infrastructure for ML inference is expensive, hard to scale up on demand, and often comes with long queues when resources are scarce. Meanwhile, many engineers carry Apple Silicon Macs with capable integrated GPUs that sit idle for much of the day.
The paper reports that some inference jobs previously waited more than ten hours for GPU capacity. For teams generating embeddings over large corpora or running batches of LLM completions, that wait is the real cost, not the compute itself.
How Minions is built
A grid of chip squares with one row lit, a simple picture of the Minions virtual GPU cloud pooling idle Macs
The architecture is deliberately boring, which is a strength for a system that must survive laptops closing their lids.
- Minion Server. Takes requests from a web UI and APIs, validates tasks, and splits them asynchronously into subtasks. It is the only path between executors and the database, so executors never connect to PostgreSQL directly.
- PostgreSQL metadata store. Holds task and executor state in seven tables, with separate development and production instances.
- Minion Executor. The agent on each Mac. It polls for eligible subtasks, claims one, downloads inputs, runs inference on the local GPU, uploads results and reports status.
- Minion Watchdog. Monitors heartbeats from executors that are currently working. If one goes silent, the subtask returns to the queue.
- Object storage. AWS S3 holds inputs and outputs, keeping large payloads off the server.
What runs on the Macs
Two workload types are described. Embedding generation uses open-source transformer models from Hugging Face through the Python transformers API on the Apple Silicon GPU. LLM completion uses Ollama running locally on each device, with no remote API calls. Executors download and cache a model the first time they need it.
If you run local models on a Mac already, our write-ups on Gemma 4 26B A4B with MLX speedups and Edge0 35B on Apple Silicon show the kind of model the executors could serve.
Pull-based scheduling and the atomic claim
The most instructive design choice is the absence of a central scheduler. Personal devices come and go, so pushing work to them means constantly tracking who is alive. Minions inverts this: executors pull.
Claiming is handled by a table with a unique constraint on team, project, task name and subtask id. Executors race to insert an ownership row, PostgreSQL guarantees exactly one insert succeeds, and the losers move on to another subtask. It is a classic database-as-lock pattern and it needs no extra coordination service.
Ordering is FIFO by default, with one practical twist. A device owner can bind an executor to a preferred team, project and task name. Matching subtasks are dequeued first even if other work is ahead in the global queue, and the executor falls back to the global queue when nothing preferred is waiting. That lets people lend their Mac to a particular colleague or project, which matters for trust.
Fault tolerance for unreliable hardware
Failure is the expected case. Network loss, sleep, shutdown, or a user deliberately stopping the executor all happen routinely. Executors send a heartbeat every five minutes, stored in a heartbeat table. The Watchdog tracks only executors that currently hold subtasks, and when one stops reporting it releases the work for someone else. No operator needs to intervene.
The trade-off is that a five-minute heartbeat means a stalled subtask may sit for a while before it is reclaimed. For batch inference this is fine; for latency-sensitive serving it would not be, and the paper positions Minions firmly in the batch camp.
Observability
Grafana dashboards, all derived from PostgreSQL, show registered, online, busy and idle executor counts, plus active, completed and failed tasks and the distribution of inference types. That is enough to answer the operational question every pooled-compute scheme faces: how much of the fleet is actually available right now?
What the results claim, and what they do not
The paper includes a qualitative table of operational impact:
| Dimension | Before | With Minions |
|---|---|---|
| GPU queue time | Hours (over 10 in some cases) | Minutes |
| New GPU requests | Required | None |
| Infrastructure cost | High | Zero |
| Scaling effort | Manual | Organic |
These are the authors' reported experience, not measurements. There are no throughput, latency, scaling-curve or utilization numbers, no chip models or memory sizes, no model sizes, and no comparison against a rented GPU on cost per token. "Zero infrastructure cost" ignores the electricity, the opportunity cost of device owners, and the engineering time to run the Postgres and S3 stack.
So treat the table as a hypothesis worth testing, not a result. The claim that queue time falls from hours to minutes is plausible, because idle capacity is large and Mac executors start immediately, but a Mac GPU is far slower than a datacenter accelerator for any single job. The win is parallelism and availability, not speed per task.
Limits the authors admit
- No quantitative evaluation. Results are anecdotal and operational.
- Inference only. Distributed training is future work.
- Churn. Availability is unreliable by design and handled through re-queuing.
- Informal coordination. Teams often recruit executors through Slack rather than a formal mechanism.
- Confidentiality. Running workloads on devices outside an organization raised concerns that limit participation. Team-scoped deployments use dedicated databases and isolated executor pools to address this.
- Single-company use. The paper describes internal deployment at Apple, so scalability beyond that is not shown.
How it compares with other ways to pool hardware
Minions is a job-queue system: many independent subtasks, each small enough to fit on one Mac. That is different from model-sharding systems, which split one model across devices. Mesh LLM and the BitTorrent-style approach revisited in our Petals post tackle the harder problem of running a model too big for any one machine, and they pay for it in network latency. Minions sidesteps that by never splitting a model, which is why it can tolerate flaky links and sleeping laptops.
For teams, the decision rule is simple. If your workload is embarrassingly parallel (embedding a corpus, classifying documents, generating many short completions) a pull-queue over idle machines can work. If you need one large model answered interactively, you need sharding or real GPUs.
Why it matters
Apple's hardware story keeps leaning toward on-device and local inference, from the M6 and M5 Ultra Mac launches to demos of a trillion-parameter model on a Mac Studio. Minions shows the organizational angle: a company with thousands of capable Macs can treat them as a latent batch cluster. It is also a reminder that Apple's research output includes plain systems engineering, alongside papers like Normalizing Trajectory Models.
Questions a platform team would ask
Who pays for the power? The paper does not say. Idle laptops still draw more power when the GPU spins up, and on battery that is a real cost to the device owner, so any real rollout needs rules such as running only when plugged in.
What about model versions? Executors download and cache models on first use, so a fleet slowly accumulates many copies of many models. Disk usage and version drift are practical concerns the paper leaves unaddressed.
How is output quality kept consistent? Every Mac in the fleet may differ in chip generation and memory, which affects which models fit. A subtask that needs a large model can only run on the bigger machines, so binding executors to specific projects, as the paper describes, doubles as a capability filter.
What to do with this
If you want to try the idea, start small. Write a queue table with a unique claim constraint, a poller that runs Ollama or a transformers embedding model, a heartbeat, and a reaper that re-queues stale claims. Measure subtasks per hour per device, then compare cost per million tokens or embeddings against a rented GPU before believing the "zero cost" line. Watch for data sensitivity first: do not send private data to machines you do not control.
Sources: the Apple Machine Learning Research page and the arXiv paper.
Related reading
- Mesh LLM v1.0: split 235B models across your LAN
- NVIDIA PAIR: idle home PCs as a personal AI cluster
- Petals revisited: BitTorrent-style LLM inference
- Gemma 4 26B A4B MLX speedup on Mac
- Apple M6 Mac mini and M5 Ultra Mac Studio
- Apple trillion-parameter model on Mac Studio
Details reflect the paper as of October 12, 2026.
