← All courses

EDGE FDE

Advanced

Run One Large LLM Across Several Macs with MLX

Run a frontier-class open model on your own Macs, for private code and documents, when it is too big for one machine.

Pipeline vs tensor parallel, memory per Mac, Thunderbolt 5 mesh, RDMA and the JACCL backend, link tests, known failures, ring fallback, and serving agents.

Choose a split, prove every Mac can hold its share, build and check a JACCL hostfile, test the link in seconds, recover or fall back when JACCL fails, and measure what agents wait.

Who this is for

You run MLX on a Mac and want to run a model that does not fit on one machine, such as the 816B Muse Spark Open model from Apple's October 2026 post. You are comfortable with Terminal, ssh, and Python. All code is Python and bash. There is no Swift or Xcode in this course.

We could not run anything on real Macs for this course. Every command was checked against the MLX docs and source, and the scripts that do not need Macs were run on a Linux box. Each lesson says what we ran and what we could not. For single-Mac memory limits see Keep On-Device LLMs Alive on Real Phones. For MLX in an iOS app see MLX Swift in Production.

Lessons

  1. Pick pipeline or tensor, size memory
  2. Cable the mesh and turn on RDMA
  3. Test the link before loading weights
  4. Fix startup errors, fall back to ring
  5. Long prompts and serving many agents

Sources we checked

Key concepts

Takeaways

Agent briefs

FAQ

Should I use pipeline or tensor parallel with MLX on several Macs?

Use tensor parallel when you have a working RDMA mesh (JACCL) and the model supports it; it speeds up decode. Use pipeline with --pipeline to make a model fit, or on the ring backend.

How many Thunderbolt cables does an MLX JACCL cluster need?

JACCL needs a full mesh: a cable between every pair of Macs, so N times N minus 1 divided by 2. Four Macs need 6 cables, or 12 with two cables per pair as Apple used.

How do I enable RDMA over Thunderbolt for MLX?

On each Mac, start in Recovery, open Terminal, run rdma_ctl enable, and reboot. It cannot be done over ssh. Check with ibv_devices. You need macOS 26.2 or newer.

What does [jaccl] Couldn't connect (error: 60) mean?

Error 60 is a timeout while the Macs set up the RDMA connection, before any weights load. Stop all ranks, check PORT_ACTIVE, rerun a small all_sum test, reboot every Mac, then fall back to ring.

How long is the first token for a 64K prompt on a Mac cluster?

Apple measured about 40.6 seconds for Muse Spark Open on four M5 Ultra Mac Studios with two Thunderbolt cables per pair, and about 50.5 seconds with one cable.

Related courses

MLX Swift in Production (Gemma + scenePhase) · Reliable Local Agents (llama.cpp + Ollama) · Keep On-Device LLMs Alive on Real Phones · Local LLM Runtime Traps (Ollama + llama.cpp) · Core AI vs Core ML vs MLX