Minions: A Dynamic and Distributed Virtual GPU Cloud Built on Idle Apple Silicon Devices
Minions turns idle Apple Silicon Macs into a fault-tolerant pool for batch machine-learning inference. Onyx and Echo examine why the system is more practical than flashy, how its pull-based architecture handles device churn, and where the paper leaves important production questions unanswered.
Transcript
Onyx The weirdest cloud in this paper is made of Macs that are already sitting on desks, doing basically nothing with their GPUs.
Echo Yeah, and the claim is narrower than the headline makes it sound. Minions is not turning a pile of laptops into one giant training accelerator. It is pooling intermittent machines for inference work that can be split up.
Onyx That distinction is the whole reason this feels useful. Teams get stuck waiting on centralized GPU clusters for embeddings and LLM completions, while perfectly capable Apple Silicon devices are idle for long stretches.
Echo Right.
Onyx So the product question is wonderfully unglamorous: can you get useful work done before somebody needs their Mac back? We've done 1076 episodes of this show, and I still enjoy a system whose main selling point is reclaiming wasted capacity.
Echo The paper's answer is a distributed queue with a very low assumption about worker reliability. A user submits a task through the Minion Server, and the server asynchronously splits it into subtasks. Those subtasks and their state go into PostgreSQL.
Onyx Then the Macs do not reach into the database. They pull eligible work through REST APIs, run it locally, and put the result in an object store such as Amazon S3.
Echo Mm-hm.
Onyx That separation matters. Large inputs and outputs avoid flowing through the coordinator, while the server only handles task state, ownership, heartbeats, and results metadata. It is a pretty sensible boundary for a fleet of machines that can vanish without warning.
Echo The clever bit is that Minions avoids building a centralized scheduler. Executors race to insert an acquirement record in a dedicated PostgreSQL table. A unique constraint on the team, project, task name, and subtask ID means one insert wins, and the others move on.
Onyx That sounds almost too boring to be the key innovation, which is usually a good sign.
Echo Exactly. The system is using the database constraint as the mutual-exclusion mechanism. There is no elaborate global view of every Mac's availability, GPU temperature, or predicted uptime. A worker asks for work, atomically claims one, and gets moving.
Onyx And when the worker stops moving, the Watchdog does not panic. Executors send heartbeats every five minutes, but the Watchdog only tracks executors currently running subtasks. If a machine sleeps, loses its network, powers off, or its user terminates the process, the unfinished subtask goes back into circulation.
Echo That is the part I buy most. The architecture treats device churn as normal behavior instead of an exceptional outage. But five minutes is a meaningful recovery interval, so this is naturally batch-oriented.
Onyx Right, you would not put a latency-sensitive voice request behind a Mac that may close its lid. This is for embedding batches, retrieval pipelines, offline completions, evaluation jobs, and similar work where finishing eventually is more important than holding a tight response-time target.
Echo The supported execution paths are also concrete. Embeddings use HuggingFace Transformers on the Apple Silicon GPU. LLM completion goes through Ollama, with the executor downloading and caching a model locally when it is missing.
Onyx That cache is a product detail, not a footnote. The first task on a machine may pay a model download cost, and different Macs may have different memory limits. A team building around this needs to know which models fit where, not merely that the workers have GPUs.
Echo Yes, and the paper does not give us the numbers I would want. There is no clear throughput curve across device types, no tail-latency distribution, no scale experiment showing how many executors PostgreSQL and the server sustain, and no cost comparison against rented GPUs.
Onyx That is a fair hole. Still, I would separate missing evidence from a broken design. For an organization with a controlled Mac fleet, this looks shippable as an internal platform. For a random collection of personal laptops, the operational and security story gets much harder.
Echo Also, re-execution needs careful output handling. If a worker dies after uploading a result but before reporting completion, another worker may repeat the subtask. The paper gives us the ownership and recovery model, but not enough detail on idempotency or duplicate-result resolution.
Onyx And that is where the customer boundary appears. This is not a virtual GPU in the sense of slicing one accelerator across arbitrary jobs. It is a durable task system that makes a changing set of local GPUs look like a useful batch resource.
Echo That wording is much more accurate, Onyx. The virtual part is the queue and the abstraction, not some magical shared memory fabric.
Onyx The name still makes me picture tiny yellow machines quietly stealing cycles from every Mac in the building.
Echo Oh, come on.
Onyx I know. Distributed systems people would call that a serious worker-pool abstraction, but Minions is more memorable. Anyway, the joke works because the workers are genuinely disposable, which is the architectural point.
Echo The paper calls the result practical in constrained environments, and I can see why. It combines a standard database, REST coordination, S3, local model runtimes, and a watchdog. Nothing here requires a new scheduling theory. The trade-off is that the paper demonstrates a pattern more than it proves a general cloud replacement.
Onyx So my read is: this is a strong internal productivity tool when the hardware already exists and the workload can tolerate waiting, retries, and uneven machines. It turns idle capacity into minutes saved without asking a team to buy another GPU cluster.
Echo And my read is similar, with one condition. I would want the missing production measurements before treating it as infrastructure for a broad service. The mechanism is sound enough to try, but the evidence does not yet tell us where the queue, storage, or model-cache costs become the bottleneck.
Onyx That feels like a good place to stop before we invent a benchmark the paper never ran. Echo, thanks for making a Mac swarm sound almost responsible. See you next time.