Why Doesn't Adding Another Mac Automatically Make an LLM Faster?
Muse Spark Open's multi-Mac launch reveals why fitting a model, generating tokens faster, and finishing useful work are different engineering problems.

On this page
Imagine a coding assistant running beside your repository. You ask it to read a large change and explain what might break. The model is local, the files are local, and yet you are still waiting.
The obvious thought is: add another machine.
But are we adding somewhere to store the model, or somewhere to do its work? Those sound like the same upgrade. They aren't.
On October 15, 2026, Meta released Muse Spark Open, an open-weight multimodal model with 816B total parameters, roughly 42B active per token, and a one-million-token context window. Apple published a distributed MLX inference study the same day.
The interesting part for me isn't simply that a very large model can run across Macs. It's that how we divide the model changes what the extra machines actually buy us.
If the memory adds up, haven't we solved the problem?#
We have solved one problem.
Apple reports about 493 GB for its NVFP4 model representation. With inference working memory added, that configuration does not fit on one 512 GB Mac Studio.
NVFP4 is a low-precision numerical format. Quantization represents model values with fewer bits to reduce their storage requirements.
That is a statement about this representation and runtime, not a universal minimum for every quantization.
A model also needs space to work. Think of a kitchen: fitting every ingredient in the cupboards doesn't mean there is room on the counter to prepare dinner. During inference, intermediate calculations and the context's attention state need memory too.
And once everything fits, we still have to move through the computation.
What if each Mac takes half the layers?#
This is pipeline parallelism: different devices own different stages of the model.
For a simplified eight-layer model, one machine could run layers one to four, then pass the intermediate result to another machine running layers five to eight.
The important word is then.
For one token's forward pass, the second half needs the first half's output. It cannot finish its part before that input exists.
Here is a deliberately simplified example, not a benchmark. Suppose the first four layers take 30 milliseconds and the last four take another 30. Putting those halves on separate machines doesn't automatically turn the path into 30 milliseconds. It is still roughly 60 milliseconds, plus the handoff.
We distributed the storage. We didn't remove the dependency.
The Megatron-LM research explains this distinction between splitting layers and splitting operations within layers. That paper studies large-scale training; I am using it for the underlying parallelism concepts, not as evidence of Mac inference performance.
Then why use a pipeline at all?#
Because fitting a model that otherwise cannot run is already useful.
There can also be multiple pieces of work moving through the pipeline. Think of a two-stage restaurant: one person prepares a dish, another finishes it. The second person cannot finish the first dish immediately, but the first person can begin the next dish while finishing happens.
That helps explain why throughput and one-request latency are different questions.
In an autoregressive response, the next token depends on the previous one. We cannot casually treat successive output tokens as independent orders. Other requests, or suitable chunks of input processing, offer different opportunities for overlap.
This is why I would ask what a scaling chart measures before asking how impressive it looks.
What changes with tensor parallelism?#
Instead of assigning whole layers to separate machines, tensor parallelism divides calculations inside a layer.
A large matrix multiplication can be partitioned so that multiple devices calculate different pieces. Their results must then be combined. The machines are collaborating on the current stage, rather than waiting to receive the next stage's input.
The attraction is straightforward: parts of the computation can happen simultaneously.
The cost is coordination.
Splitting the arithmetic creates messages, synchronization, and opportunities for devices to wait. The Megatron-LM paper discusses these communication tradeoffs. My mental model is two engineers dividing a calculation: it helps if exchanging partial results is cheap; it helps less if every small step requires a meeting.
So what did Apple actually measure?#
Time to first token measures the wait until generation begins. Decode speed measures token generation after that.
Here is the useful comparison from Apple's study, for Muse Spark Open NVFP4 with an 8,192-token input:
| Configuration | Time to first token | Decode tokens/second |
|---|---|---|
| Two M5 Ultra Macs, pipeline | 8.4 s | 15.74 |
| Two M5 Ultra Macs, tensor | 8.2 s | 24.99 |
| Four M5 Ultra Macs, tensor | 4.8 s | 36.73 |
These are Apple-reported measurements, using MLX, batch size one, and 128 generated tokens. The distributed setup uses Thunderbolt 5 RDMA.
The same two-machine setup produces about 1.59 times the decode rate when the partitioning changes. Doubling the tensor-parallel machine count produces about 1.47 times the rate, not twice. Those ratios are my arithmetic from the table.
There is no single-Mac Muse baseline in this comparison. It would be misleading to turn the four-Mac result into a speedup over a one-Mac run that wasn't measured.
Also notice that changing the two-machine partition barely changes time to first token here, even though decode improves substantially. “Faster” needs a workload and a metric.
Are the cables now part of the model's performance?#
Very much so.
RDMA means remote direct memory access. Here, it provides a low-latency way for machines to exchange data. It doesn't make all the memory behave like one ordinary, equally fast local allocation.
The MLX distributed documentation describes the JACCL communication backend and requires a fully connected Thunderbolt mesh: every pair of machines needs a direct connection.

Diagram source and setup requirements · MIT license.
For four machines, a full mesh has six machine-pair connections. That is simple counting, but it makes the engineering point: adding a box can also add cabling and configuration work.
One practical caution: Apple's benchmark command enables MLX_METAL_FAST_SYNCH=1. The current MLX documentation warns that this experimental option can deadlock and recommends leaving it unset. I wouldn't copy a benchmark command into a persistent service without checking that warning.
What happens outside Apple's own test?#
Hugging Face's release walkthrough reports a different experiment: an imatrix-calibrated two-bit quantization on an M3 Ultra with 512 GB, using llama.cpp, at about 18 tokens per second, with 304 GB used by the model.
That is an ecosystem developer's firsthand report, not an independent reproduction of Apple's configuration. The quantization, hardware generation, and backend differ. The paragraph does not provide the exact prompt, context length, runtime commit, or repeated-run statistics.
Its original demo is useful to inspect: at 00, the interface shows generated code and a Q2_K checkpoint label; at 00, it shows a rendered brick simulation.
Those inspected frames illustrate one coding demonstration. They do not establish elapsed inference time or general coding reliability.
Unsloth's own quantization tests add another boundary: it reports degradation on its general-task checks below UD-IQ2_S, while smaller quants fare better on chat-style checks. Unsloth supplies those quantizations and had day-zero access, so this is not a neutral lab evaluation.
A smaller checkpoint can change whether a model fits. It can also change its behavior. These reports are not evidence that two-bit and NVFP4 results are interchangeable.
I couldn't verify an outside reproduction of Apple's exact multi-Mac benchmark or a controlled independent video comparison in the sources checked.
What would I measure before adding another machine?#
I would first choose the problem I actually need to improve:
- Does the intended checkpoint fit at my working context length?
- How long before the first useful answer appears?
- How quickly are subsequent tokens generated?
- What happens when several requests arrive together?
- Does the smaller representation still complete the real task correctly?
The weights also carry Meta's Muse Model License, not an unrestricted software license; deployment terms deserve their own check.
I haven't run Muse Spark Open myself. This is a reading of primary documentation, attributed developer tests, inspected demo frames, and illustrative reasoning.
What interests me is the distinction the launch makes visible: capacity lets the computation exist; partitioning and communication determine how efficiently it moves.
So before asking whether another machine makes an LLM faster, I would ask:
Which part of the work can actually happen at the same time?
References
- 1.Introducing Muse Spark Open
Company release announcement. Confirms actual weight-release date, 816B total/42B active parameters, context, and limited commercial license. Not an independent evaluation.
- 2.Muse Spark Open model card
Primary model specifications, release date, checkpoint formats, model license and runtime recommendations. Its benchmark results are vendor-reported.
- 3.Local and Distributed Large LLM Inference with MLX and RDMA on Mac Studio
Hardware/framework vendor study: Muse Spark Open NVFP4, M5 Ultra Mac Studios, MLX LM benchmark, batch 1, input 8192/output 128 tokens for article table. Pipeline vs tensor comparisons, ~493 GB representation. Not independently reproduced here.
- 4.Distributed Communication — JACCL and mesh requirements
Current documentation accessed 2026-10-18. RDMA, full-mesh topology, original M3 Ultra diagram and warning that experimental MLX_METAL_FAST_SYNCH can deadlock. Version-sensitive.
- 5.Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM
Background primary research, revised 2021-08-23. Pipeline/tensor definitions and communication tradeoffs. Training study, not a new Mac inference experiment; no training performance numbers reused.
- 6.Welcome Muse Spark Open: open-weight frontier multimodal mixture-of-experts model from Meta
Firsthand ecosystem report accessed 2026-10-18. Reports imatrix-calibrated 2-bit quant, M3 Ultra 512GB, llama.cpp, 18 tokens/s, 304 GB model memory. Prompt, context, commit and repeated-run statistics unspecified in test paragraph. Not neutral or an exact Apple replication. Raw source: https://github.com/huggingface/blog/blob/main/meta-muse-spark-open.md
- 7.Muse Spark Open two-bit llama-server demonstration
Original 26.583-second clip inspected at 00:00, 00:08, 00:18, 00:25 on 2026-10-18. 00:08: code plus Q2_K label and UI counter; 00:25: rendered brick simulation. Edited demo is not a real-time timing or task-success benchmark. Clip and stills not redistributed in archive; URLs/timestamps preserved.
- 8.Meta Muse Spark Open — Run Locally Guide: KLD Benchmarks
Original quantization-supplier evaluation accessed 2026-10-18; acknowledges day-zero access. Reports general-task degradation below UD-IQ2_S and different behavior on chat-style checks. Full datasets, prompts, hardware, backend revision and uncertainty not established from the section; not an agent task-success score.
- 9.MLX MIT License
Copyright © 2023 Apple Inc. License includes associated documentation. Original full-mesh diagram copied unchanged for topology illustration; original labels preserved and full license included in evidence archive.
Continue exploring
- Does a Language Model Have to Do All Its Work in Tokens?Cola2's new checkpoint generates compressed latents before realizing text. Explore its architecture, feedback loop and why fewer training tokens don't establish a from-scratch efficiency gain.
- Can a Language Model Really Read DNA?Carbon-X adds DNA tokens to a 14.8B chat model. A close look at its tokenizer, vendor benchmarks, local demo, and the gap between fluent answers and grounded sequence reasoning.
- Does an LLM Have to Write From Left to Right?Inception's new diffusion language model refines text in parallel. Here's what that changes, how its streaming works, and what early outside tests reveal about speed and reliability.
- Can an AI API Prove Which Model Answered You?FlashProve raises a practical question for hosted AI: can you verify which computation produced an output? A look at commitments, reported proving costs, integer-model limits and the gap between a protocol theorem and deployed software.