{"code":"var Component=(()=>{var p=Object.create;var s=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var y=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),E=(n,e)=>{for(var l in e)s(n,l,{get:e[l],enumerable:!0})},t=(n,e,l,h)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let r of g(e))!u.call(n,r)&&r!==l&&s(n,r,{get:()=>e[r],enumerable:!(h=k(e,r))||h.enumerable});return n};var b=(n,e,l)=>(l=n!=null?p(m(n)):{},t(e||!n||!n.__esModule?s(l,\"default\",{value:n,enumerable:!0}):l,n)),f=n=>t(s({},\"__esModule\",{value:!0}),n);var a=y((v,d)=>{d.exports=_jsx_runtime});var F={};E(F,{default:()=>o});var i=b(a());function c(n){let e={a:\"a\",code:\"code\",h2:\"h2\",h3:\"h3\",h4:\"h4\",hr:\"hr\",img:\"img\",li:\"li\",ol:\"ol\",p:\"p\",pre:\"pre\",span:\"span\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.p,{children:\"macOS Tahoe 26.2 introduces a revolutionary feature that transforms multiple Macs into a unified AI supercomputer using Thunderbolt 5 clustering. This comprehensive guide covers everything from hardware requirements to running trillion-parameter models like Kimi K2 Thinking on your own Mac cluster.\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:\"macOS Tahoe Thunderbolt 5 Clustering Guide\",src:\"/images/blog/shared/mac-studio-back-view.webp\",width:\"758\",height:\"372\"})}),`\n`,(0,i.jsx)(e.h2,{id:\"key-takeaways\",children:\"Key Takeaways\"}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Thunderbolt 5 clustering\"}),\" in macOS Tahoe 26.2 enables connecting multiple Macs at up to 80 Gbps bidirectional speed\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Four Mac Studios with 512GB each\"}),\" can run the 1 trillion parameter Kimi K2 Thinking model using under 500W total power\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Compatible devices\"}),\" include M4 Pro Mac mini, M4 Pro/Max MacBook Pro, and M3 Ultra Mac Studio\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"MLX framework\"}),\" and \",(0,i.jsx)(e.strong,{children:\"EXO 1.0\"}),\" software provide the distributed computing infrastructure\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"No special hardware required\"}),\" - just standard Thunderbolt 5 cables under 2 meters\"]}),`\n`]}),`\n`,(0,i.jsx)(e.hr,{}),`\n`,(0,i.jsx)(e.h2,{id:\"executive-summary-understanding-mac-clustering-technology\",children:\"Executive Summary: Understanding Mac Clustering Technology\"}),`\n`,(0,i.jsx)(e.h3,{id:\"why-thunderbolt-5-clustering-matters\",children:\"Why Thunderbolt 5 Clustering Matters\"}),`\n`,(0,i.jsx)(e.p,{children:\"The release of macOS Tahoe 26.2 marks a pivotal moment in Apple's professional computing strategy. For the first time, Apple provides native, optimized support for connecting multiple Macs into a unified computing cluster using Thunderbolt 5's unprecedented bandwidth. This isn't just an incremental improvement\\u2014it fundamentally changes what's possible with Mac hardware.\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"The Problem It Solves:\"})}),`\n`,(0,i.jsx)(e.p,{children:\"Running large AI models has traditionally required expensive GPU clusters with massive power consumption. A typical setup for trillion-parameter models might include:\"}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"NVIDIA H100 cluster\"}),\": $400,000+ hardware, 10kW+ power draw\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Cloud GPU instances\"}),\": $2-5 per hour for capable instances\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Custom datacenter infrastructure\"}),\": Cooling, power distribution, networking\"]}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"The Mac Cluster Solution:\"})}),`\n`,(0,i.jsx)(e.p,{children:\"With Thunderbolt 5 clustering, you can achieve comparable capabilities with:\"}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"4x Mac Studio\"}),\": $47,000 hardware (88% cost reduction vs H100)\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Power draw\"}),\": Under 500W (95% reduction)\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"No infrastructure\"}),\": Standard office environment\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Local processing\"}),\": Complete data privacy\"]}),`\n`]}),`\n`,(0,i.jsx)(e.h3,{id:\"who-benefits-from-mac-clustering\",children:\"Who Benefits from Mac Clustering?\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"AI Researchers and ML Engineers:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Run frontier models locally without cloud dependencies\"}),`\n`,(0,i.jsx)(e.li,{children:\"Iterate faster with dedicated hardware\"}),`\n`,(0,i.jsx)(e.li,{children:\"Maintain complete control over training data\"}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Creative Professionals:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Distributed video rendering across multiple Macs\"}),`\n`,(0,i.jsx)(e.li,{children:\"AI-assisted editing with local models\"}),`\n`,(0,i.jsx)(e.li,{children:\"Large file processing without network latency\"}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Enterprise IT Teams:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Private AI deployments\"}),`\n`,(0,i.jsx)(e.li,{children:\"Cost-predictable infrastructure\"}),`\n`,(0,i.jsx)(e.li,{children:\"Simplified maintenance compared to GPU clusters\"}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Independent Developers:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Build AI applications with local inference\"}),`\n`,(0,i.jsx)(e.li,{children:\"Test against large models during development\"}),`\n`,(0,i.jsx)(e.li,{children:\"Ship products without ongoing API costs\"}),`\n`]}),`\n`,(0,i.jsx)(e.hr,{}),`\n`,(0,i.jsx)(e.h2,{id:\"what-is-thunderbolt-5-mac-clustering\",children:\"What is Thunderbolt 5 Mac Clustering?\"}),`\n`,(0,i.jsx)(e.h3,{id:\"the-evolution-of-mac-distributed-computing\",children:\"The Evolution of Mac Distributed Computing\"}),`\n`,(0,i.jsx)(e.p,{children:\"Thunderbolt 5 Mac clustering represents Apple's modern revival of distributed computing on Mac. Long-time Apple users may remember Xgrid, which turned collections of Macs into supercomputers. The new Thunderbolt 5 clustering in macOS Tahoe 26.2 follows a similar concept but operates at dramatically higher speeds.\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Historical Context:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Xgrid Era\"}),\": Limited to Ethernet speeds (1-10 Gbps)\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Thunderbolt 4 Clusters\"}),\": 40 Gbps, hub usage reduced speeds to 10 Gbps\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Thunderbolt 5 Clusters\"}),\": Full 80 Gbps bidirectional, 120 Gbps burst mode\"]}),`\n`]}),`\n`,(0,i.jsx)(e.h3,{id:\"how-thunderbolt-5-clustering-works\",children:\"How Thunderbolt 5 Clustering Works\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"The clustering technology uses \",(0,i.jsx)(e.strong,{children:\"Remote Direct Memory Access (RDMA)\"}),\", allowing one Mac to directly access the memory of another without CPU overhead. When you connect multiple Macs via Thunderbolt 5:\"]}),`\n`,(0,i.jsxs)(e.ol,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Memory Pooling\"}),\": Each Mac's unified memory becomes accessible to the entire cluster\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Model Partitioning\"}),\": Large AI models are split across machines proportionally\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Parallel Processing\"}),\": Workloads are distributed based on available resources\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Low-Latency Communication\"}),\": Direct memory access eliminates network bottlenecks\"]}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Example Memory Pool Configuration:\"})}),`\n`,(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:\"Configuration\"}),(0,i.jsx)(e.th,{children:\"Total Memory\"}),(0,i.jsx)(e.th,{children:\"Use Case\"})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"2x Mac Studio (512GB)\"}),(0,i.jsx)(e.td,{children:\"1TB shared\"}),(0,i.jsx)(e.td,{children:\"Kimi K2 Thinking (594GB)\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"4x Mac Studio (512GB)\"}),(0,i.jsx)(e.td,{children:\"2TB shared\"}),(0,i.jsx)(e.td,{children:\"Multiple trillion-parameter models\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"4x Mac mini M4 Pro (64GB)\"}),(0,i.jsx)(e.td,{children:\"256GB shared\"}),(0,i.jsx)(e.td,{children:\"70B-200B parameter models\"})]})]})]}),`\n`,(0,i.jsx)(e.h3,{id:\"apple-silicon-unified-memory-advantage\",children:\"Apple Silicon Unified Memory Advantage\"}),`\n`,(0,i.jsx)(e.p,{children:\"One key reason Mac clustering is so effective lies in Apple Silicon's unified memory architecture. Unlike traditional computers where GPU and CPU have separate memory pools, Apple Silicon shares memory between all processing units.\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Unified Memory Benefits for Clustering:\"})}),`\n`,(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:\"Aspect\"}),(0,i.jsx)(e.th,{children:\"Traditional Architecture\"}),(0,i.jsx)(e.th,{children:\"Apple Silicon\"})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Memory Access\"}),(0,i.jsx)(e.td,{children:\"GPU copies data from RAM\"}),(0,i.jsx)(e.td,{children:\"Direct shared access\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Bandwidth\"}),(0,i.jsx)(e.td,{children:\"Limited by PCIe (64 GB/s)\"}),(0,i.jsx)(e.td,{children:\"Up to 800 GB/s (M3 Ultra)\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Efficiency\"}),(0,i.jsx)(e.td,{children:\"Data duplication required\"}),(0,i.jsx)(e.td,{children:\"Zero-copy operations\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Scalability\"}),(0,i.jsx)(e.td,{children:\"VRAM limits model size\"}),(0,i.jsx)(e.td,{children:\"Unified pool scales linearly\"})]})]})]}),`\n`,(0,i.jsx)(e.p,{children:\"When you cluster multiple Macs, you're effectively creating a larger unified memory pool. A model that's too large for one Mac's memory can be split across nodes, with each Mac holding a portion and sharing access via Thunderbolt 5.\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Practical Example:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Single Mac Studio (512GB)\"}),\": Can run models up to ~450GB (leaving headroom)\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"2x Mac Studio (1TB pooled)\"}),\": Can run models up to ~900GB\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"4x Mac Studio (2TB pooled)\"}),\": Can run models up to ~1.8TB\"]}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:\"This linear scaling is what makes trillion-parameter models like Kimi K2 Thinking feasible on Mac hardware.\"}),`\n`,(0,i.jsx)(e.hr,{}),`\n`,(0,i.jsx)(e.h2,{id:\"hardware-requirements-and-compatibility\",children:\"Hardware Requirements and Compatibility\"}),`\n`,(0,i.jsx)(e.h3,{id:\"compatible-mac-models\",children:\"Compatible Mac Models\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Thunderbolt 5 Native Support (Full 80 Gbps):\"})}),`\n`,(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:\"Device\"}),(0,i.jsx)(e.th,{children:\"Thunderbolt 5 Ports\"}),(0,i.jsx)(e.th,{children:\"Max Memory\"}),(0,i.jsx)(e.th,{children:\"Notes\"})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Mac Studio (M3 Ultra)\"}),(0,i.jsx)(e.td,{children:\"6\"}),(0,i.jsx)(e.td,{children:\"512GB\"}),(0,i.jsx)(e.td,{children:\"Best for large clusters\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Mac mini (M4 Pro)\"}),(0,i.jsx)(e.td,{children:\"3 front\"}),(0,i.jsx)(e.td,{children:\"64GB\"}),(0,i.jsx)(e.td,{children:\"Cost-effective nodes\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:'MacBook Pro 14\" (M4 Pro)'}),(0,i.jsx)(e.td,{children:\"3\"}),(0,i.jsx)(e.td,{children:\"48GB\"}),(0,i.jsx)(e.td,{children:\"Portable clustering\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:'MacBook Pro 16\" (M4 Max)'}),(0,i.jsx)(e.td,{children:\"3\"}),(0,i.jsx)(e.td,{children:\"128GB\"}),(0,i.jsx)(e.td,{children:\"High-memory portable\"})]})]})]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Important Specifications:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Thunderbolt 5 Speed\"}),\": 80 Gbps bidirectional (120 Gbps burst mode for video)\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Memory Bandwidth\"}),\": M4 Pro delivers 273GB/s, M4 Max delivers 546GB/s\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Cable Length\"}),\": Keep under 2 meters for optimal performance\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Cable Type\"}),\": Standard Thunderbolt 5 cables (USB4 v2 compatible)\"]}),`\n`]}),`\n`,(0,i.jsx)(e.h3,{id:\"recommended-cluster-configurations\",children:\"Recommended Cluster Configurations\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Budget Cluster (Machine Learning Experimentation):\"})}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"4x Mac mini M4 Pro (24GB each)\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Total Memory: 96GB shared\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Cost: ~$7,200\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Best For: Models up to 70B parameters\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Power Draw: ~60W idle, ~200W peak\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Noise Level: Nearly silent\"})})]})})}),`\n`,(0,i.jsx)(e.p,{children:\"This configuration is perfect for developers learning distributed ML, small teams experimenting with open-source models, or running smaller models like Llama 3.1 8B and Mistral 7B with excellent performance.\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Professional Cluster (Production AI Workloads):\"})}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"4x Mac mini M4 Pro (64GB each)\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Total Memory: 256GB shared\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Cost: ~$13,200\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Best For: Models up to 200B parameters\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Power Draw: ~80W idle, ~300W peak\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Noise Level: Nearly silent\"})})]})})}),`\n`,(0,i.jsx)(e.p,{children:\"The professional tier unlocks medium-large models like Llama 3.1 70B and can run inference on enterprise-grade models. This is the sweet spot for most businesses deploying local AI.\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Enterprise Cluster (Trillion-Parameter Models):\"})}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"4x Mac Studio M3 Ultra (512GB each)\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Total Memory: 2TB shared\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Cost: ~$47,000 (\\u20AC47,000)\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Best For: Kimi K2 Thinking, DeepSeek V3, frontier models\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Power Draw: ~100W idle, ~500W peak\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Noise Level: Moderate under load\"})})]})})}),`\n`,(0,i.jsx)(e.p,{children:\"This top-tier configuration matches or exceeds datacenter GPU clusters for inference workloads while consuming a fraction of the power and requiring no specialized infrastructure.\"}),`\n`,(0,i.jsx)(e.h3,{id:\"thunderbolt-5-cable-selection-guide\",children:\"Thunderbolt 5 Cable Selection Guide\"}),`\n`,(0,i.jsx)(e.p,{children:\"Choosing the right cables is critical for cluster performance. Not all cables support full Thunderbolt 5 speeds.\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Recommended Cables:\"})}),`\n`,(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:\"Cable\"}),(0,i.jsx)(e.th,{children:\"Length\"}),(0,i.jsx)(e.th,{children:\"Max Speed\"}),(0,i.jsx)(e.th,{children:\"Price Range\"})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Apple Thunderbolt 5 Pro\"}),(0,i.jsx)(e.td,{children:\"1m\"}),(0,i.jsx)(e.td,{children:\"120 Gbps\"}),(0,i.jsx)(e.td,{children:\"$69-79\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"OWC Thunderbolt 5\"}),(0,i.jsx)(e.td,{children:\"0.8m\"}),(0,i.jsx)(e.td,{children:\"80 Gbps\"}),(0,i.jsx)(e.td,{children:\"$50-60\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"CalDigit TB5 Cable\"}),(0,i.jsx)(e.td,{children:\"1m\"}),(0,i.jsx)(e.td,{children:\"80 Gbps\"}),(0,i.jsx)(e.td,{children:\"$45-55\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Belkin Connect Pro\"}),(0,i.jsx)(e.td,{children:\"1m\"}),(0,i.jsx)(e.td,{children:\"80 Gbps\"}),(0,i.jsx)(e.td,{children:\"$40-50\"})]})]})]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Cable Selection Tips:\"})}),`\n`,(0,i.jsxs)(e.ol,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Stick to under 1 meter\"}),\": Full 80 Gbps requires short, high-quality cables\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Look for USB4 v2 certification\"}),\": Ensures Thunderbolt 5 compatibility\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Avoid adapters\"}),\": Direct TB5-to-TB5 connections only\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Buy from reputable brands\"}),\": Knockoff cables may not achieve rated speeds\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Test cables before deployment\"}),\": Use \",(0,i.jsx)(e.code,{children:\"system_profiler SPThunderboltDataType\"}),\" to verify link speed\"]}),`\n`]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Warning\"}),': Many \"Thunderbolt 5 compatible\" cables sold online only achieve Thunderbolt 4 speeds. Always verify specifications before purchase.']}),`\n`,(0,i.jsx)(e.hr,{}),`\n`,(0,i.jsx)(e.h2,{id:\"software-stack-mlx-and-exo-frameworks\",children:\"Software Stack: MLX and EXO Frameworks\"}),`\n`,(0,i.jsx)(e.h3,{id:\"understanding-mlx-distributed-computing\",children:\"Understanding MLX Distributed Computing\"}),`\n`,(0,i.jsx)(e.p,{children:\"MLX is Apple's open-source array framework designed specifically for machine learning on Apple Silicon. It provides native support for distributed computing across multiple Macs.\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Key MLX Features:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Unified Memory Access\"}),\": Leverages Apple Silicon's unified memory architecture\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Lazy Evaluation\"}),\": Computations only execute when results are needed\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Dynamic Compilation\"}),\": Just-in-time compilation for optimal performance\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Distributed Primitives\"}),\": Built-in support for multi-machine operations\"]}),`\n`]}),`\n`,(0,i.jsx)(e.h3,{id:\"mlx-communication-backends\",children:\"MLX Communication Backends\"}),`\n`,(0,i.jsx)(e.p,{children:\"MLX supports three communication backends for different use cases:\"}),`\n`,(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:\"Backend\"}),(0,i.jsx)(e.th,{children:\"Speed\"}),(0,i.jsx)(e.th,{children:\"Best For\"}),(0,i.jsx)(e.th,{children:\"Setup Complexity\"})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:(0,i.jsx)(e.strong,{children:\"Ring\"})}),(0,i.jsx)(e.td,{children:\"Fastest\"}),(0,i.jsx)(e.td,{children:\"Thunderbolt connections\"}),(0,i.jsx)(e.td,{children:\"Medium\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:(0,i.jsx)(e.strong,{children:\"MPI\"})}),(0,i.jsx)(e.td,{children:\"Fast\"}),(0,i.jsx)(e.td,{children:\"Ethernet networks\"}),(0,i.jsx)(e.td,{children:\"Higher\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:(0,i.jsx)(e.strong,{children:\"NCCL\"})}),(0,i.jsx)(e.td,{children:\"N/A\"}),(0,i.jsx)(e.td,{children:\"CUDA environments\"}),(0,i.jsx)(e.td,{children:\"N/A on Mac\"})]})]})]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"The Ring backend is recommended for Thunderbolt 5 clusters\"}),\" as it's optimized for direct peer-to-peer connections.\"]}),`\n`,(0,i.jsx)(e.h3,{id:\"understanding-distributed-training-vs-inference\",children:\"Understanding Distributed Training vs Inference\"}),`\n`,(0,i.jsx)(e.p,{children:\"Before diving into setup, it's important to understand the two primary use cases for Mac clustering:\"}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Distributed Inference (Running Models):\"}),`\nThis is the primary use case for most users. When you run inference:`]}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"The model is split across multiple Macs based on available memory\"}),`\n`,(0,i.jsx)(e.li,{children:\"Each Mac holds a portion of the model weights\"}),`\n`,(0,i.jsx)(e.li,{children:\"During generation, data flows between nodes as needed\"}),`\n`,(0,i.jsx)(e.li,{children:\"No training occurs\\u2014you're using a pre-trained model\"}),`\n`]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Distributed Training (Creating Models):\"}),`\nFor researchers and advanced users:`]}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Training data is split across nodes (data parallelism)\"}),`\n`,(0,i.jsx)(e.li,{children:\"Gradients are averaged across all nodes after each batch\"}),`\n`,(0,i.jsx)(e.li,{children:\"Model weights are synchronized periodically\"}),`\n`,(0,i.jsx)(e.li,{children:\"Requires significantly more inter-node communication\"}),`\n`]}),`\n`,(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:\"Use Case\"}),(0,i.jsx)(e.th,{children:\"Bandwidth Requirement\"}),(0,i.jsx)(e.th,{children:\"Complexity\"}),(0,i.jsx)(e.th,{children:\"Typical Users\"})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Inference\"}),(0,i.jsx)(e.td,{children:\"Medium (model loading)\"}),(0,i.jsx)(e.td,{children:\"Low\"}),(0,i.jsx)(e.td,{children:\"Most users\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Fine-tuning\"}),(0,i.jsx)(e.td,{children:\"High (gradient sync)\"}),(0,i.jsx)(e.td,{children:\"Medium\"}),(0,i.jsx)(e.td,{children:\"ML engineers\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Full Training\"}),(0,i.jsx)(e.td,{children:\"Very High (constant sync)\"}),(0,i.jsx)(e.td,{children:\"High\"}),(0,i.jsx)(e.td,{children:\"Researchers\"})]})]})]}),`\n`,(0,i.jsx)(e.p,{children:\"For most Mac cluster users, inference is the primary goal\\u2014running large models that wouldn't fit on a single machine.\"}),`\n`,(0,i.jsx)(e.h3,{id:\"exo-simplified-cluster-management\",children:\"EXO: Simplified Cluster Management\"}),`\n`,(0,i.jsx)(e.p,{children:\"EXO (from Exo Labs) provides a higher-level abstraction for building AI clusters. Apple has integrated EXO's protocol into macOS Tahoe 26.2.\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"EXO Key Features:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Auto-Discovery\"}),\": Automatically detects other devices on the network\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Peer-to-Peer Architecture\"}),\": No master-worker hierarchy\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Intelligent Partitioning\"}),\": Optimally splits models based on device capabilities\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"ChatGPT-Compatible API\"}),\": OpenAI-compatible endpoint at \",(0,i.jsx)(e.code,{children:\"localhost:52415\"})]}),`\n`]}),`\n`,(0,i.jsx)(e.hr,{}),`\n`,(0,i.jsx)(e.h2,{id:\"step-by-step-cluster-setup-guide\",children:\"Step-by-Step Cluster Setup Guide\"}),`\n`,(0,i.jsx)(e.h3,{id:\"prerequisites\",children:\"Prerequisites\"}),`\n`,(0,i.jsx)(e.p,{children:\"Before starting, ensure you have:\"}),`\n`,(0,i.jsxs)(e.ol,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"macOS Tahoe 26.2\"}),\" or later installed on all Macs\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Thunderbolt 5 cables\"}),\" (under 2 meters)\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Python 3.12+\"}),\" installed\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Passwordless SSH\"}),\" configured between machines\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Same network\"}),\" for all machines (for initial discovery)\"]}),`\n`]}),`\n`,(0,i.jsx)(e.h3,{id:\"method-1-mlx-native-setup-recommended\",children:\"Method 1: MLX Native Setup (Recommended)\"}),`\n`,(0,i.jsx)(e.h4,{id:\"step-1-install-mlx\",children:\"Step 1: Install MLX\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Install MLX via pip\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"pip\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" install\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" mlx\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Verify installation\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"python\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -c\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"import mlx.core as mx; print(mx.__version__)\"'})]})]})})}),`\n`,(0,i.jsx)(e.h4,{id:\"step-2-configure-thunderbolt-network\",children:\"Step 2: Configure Thunderbolt Network\"}),`\n`,(0,i.jsx)(e.p,{children:\"Connect your Macs in a ring topology using Thunderbolt 5 cables:\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,i.jsx)(e.code,{children:(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Mac 1 \\u2190\\u2192 Mac 2 \\u2190\\u2192 Mac 3 \\u2190\\u2192 Mac 4 \\u2190\\u2192 Mac 1\"})})})})}),`\n`,(0,i.jsx)(e.p,{children:\"Use the MLX distributed configuration tool:\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Discover Thunderbolt ring and generate configuration\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"mlx.distributed_config\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --verbose\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --hosts\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" mac1,mac2,mac3,mac4\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Auto-configure all nodes (requires passwordless sudo)\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"mlx.distributed_config\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --verbose\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --hosts\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" mac1,mac2,mac3,mac4\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --auto-setup\"})]})]})})}),`\n`,(0,i.jsx)(e.h4,{id:\"step-3-create-hostfile-configuration\",children:\"Step 3: Create Hostfile Configuration\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"Create a \",(0,i.jsx)(e.code,{children:\"ring-4.json\"}),\" file:\"]}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"[\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"    {\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:'\"ssh\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\": \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"mac1.local\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\", \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:'\"ips\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\": [\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"192.168.100.1\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"]},\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"    {\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:'\"ssh\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\": \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"mac2.local\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\", \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:'\"ips\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\": [\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"192.168.100.2\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"]},\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"    {\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:'\"ssh\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\": \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"mac3.local\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\", \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:'\"ips\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\": [\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"192.168.100.3\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"]},\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"    {\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:'\"ssh\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\": \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"mac4.local\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\", \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:'\"ips\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\": [\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"192.168.100.4\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"]}\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"]\"})})]})})}),`\n`,(0,i.jsx)(e.h4,{id:\"step-4-test-distributed-communication\",children:\"Step 4: Test Distributed Communication\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"Create a test script \",(0,i.jsx)(e.code,{children:\"test_distributed.py\"}),\":\"]}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"import\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mlx.core \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"as\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mx\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Initialize distributed group\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"world \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mx.distributed.init()\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Each process creates an array with its rank\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"x \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mx.ones(\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"10\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\") \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"*\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" world.rank()\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Sum arrays across all processes\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"result \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mx.distributed.all_sum(x)\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"print\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"(\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"f\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"Rank '}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"{\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"world.rank()\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"}\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\": sum = \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"{\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"result\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"}\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\")\"})]})]})})}),`\n`,(0,i.jsx)(e.p,{children:\"Launch the test:\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsx)(e.code,{children:(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"mlx.launch\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --hostfile\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" ring-4.json\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" test_distributed.py\"})]})})})}),`\n`,(0,i.jsx)(e.p,{children:\"Expected output (4 nodes):\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Rank 0: sum = array([6., 6., 6., 6., 6., 6., 6., 6., 6., 6.])\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Rank 1: sum = array([6., 6., 6., 6., 6., 6., 6., 6., 6., 6.])\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Rank 2: sum = array([6., 6., 6., 6., 6., 6., 6., 6., 6., 6.])\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Rank 3: sum = array([6., 6., 6., 6., 6., 6., 6., 6., 6., 6.])\"})})]})})}),`\n`,(0,i.jsx)(e.h3,{id:\"method-2-exo-setup-user-friendly\",children:\"Method 2: EXO Setup (User-Friendly)\"}),`\n`,(0,i.jsx)(e.h4,{id:\"step-1-clone-and-install-exo\",children:\"Step 1: Clone and Install EXO\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Clone the repository\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"git\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" clone\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" https://github.com/exo-explore/exo.git\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"cd\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" exo\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Install dependencies\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"pip\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" install\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -e\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" .\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Or use the install script\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"source\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" install.sh\"})]})]})})}),`\n`,(0,i.jsx)(e.h4,{id:\"step-2-configure-mlx-for-apple-silicon\",children:\"Step 2: Configure MLX for Apple Silicon\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Run the MLX configuration script\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"./configure_mlx.sh\"})})]})})}),`\n`,(0,i.jsx)(e.p,{children:\"This optimizes GPU memory allocation on Apple Silicon Macs.\"}),`\n`,(0,i.jsx)(e.h4,{id:\"step-3-start-the-cluster\",children:\"Step 3: Start the Cluster\"}),`\n`,(0,i.jsx)(e.p,{children:\"On each node, run the same command:\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsx)(e.code,{children:(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"exo\"})})})})}),`\n`,(0,i.jsx)(e.p,{children:\"EXO will:\"}),`\n`,(0,i.jsxs)(e.ol,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Automatically discover other nodes via peer-to-peer communication\"}),`\n`,(0,i.jsx)(e.li,{children:\"Apply ring memory weighted partitioning\"}),`\n`,(0,i.jsxs)(e.li,{children:[\"Start the web interface at \",(0,i.jsx)(e.code,{children:\"http://localhost:52415\"})]}),`\n`,(0,i.jsxs)(e.li,{children:[\"Start the API endpoint at \",(0,i.jsx)(e.code,{children:\"http://localhost:52415/v1/chat/completions\"})]}),`\n`]}),`\n`,(0,i.jsx)(e.h4,{id:\"step-4-access-the-interface\",children:\"Step 4: Access the Interface\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"Open your browser to \",(0,i.jsx)(e.code,{children:\"http://localhost:52415\"}),\" for a ChatGPT-like interface to interact with your cluster.\"]}),`\n`,(0,i.jsx)(e.hr,{}),`\n`,(0,i.jsx)(e.h2,{id:\"running-large-language-models\",children:\"Running Large Language Models\"}),`\n`,(0,i.jsx)(e.h3,{id:\"downloading-models\",children:\"Downloading Models\"}),`\n`,(0,i.jsx)(e.p,{children:\"EXO supports various model sources:\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Download from Hugging Face\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"exo\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" download\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" moonshotai/Kimi-K2-Instruct\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Download Llama models\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"exo\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" download\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" meta-llama/Llama-3.1-70B-Instruct\"})]})]})})}),`\n`,(0,i.jsx)(e.h3,{id:\"memory-requirements-by-model\",children:\"Memory Requirements by Model\"}),`\n`,(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:\"Model\"}),(0,i.jsx)(e.th,{children:\"Parameters\"}),(0,i.jsx)(e.th,{children:\"Memory Required\"}),(0,i.jsx)(e.th,{children:\"Recommended Cluster\"})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Llama 3.1 8B\"}),(0,i.jsx)(e.td,{children:\"8B\"}),(0,i.jsx)(e.td,{children:\"16GB\"}),(0,i.jsx)(e.td,{children:\"Single Mac\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Llama 3.1 70B\"}),(0,i.jsx)(e.td,{children:\"70B\"}),(0,i.jsx)(e.td,{children:\"140GB\"}),(0,i.jsx)(e.td,{children:\"3x Mac mini (64GB)\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Llama 3.1 405B\"}),(0,i.jsx)(e.td,{children:\"405B\"}),(0,i.jsx)(e.td,{children:\"810GB\"}),(0,i.jsx)(e.td,{children:\"4x Mac Studio (512GB)\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Kimi K2\"}),(0,i.jsx)(e.td,{children:\"1T (32B active)\"}),(0,i.jsx)(e.td,{children:\"594GB\"}),(0,i.jsx)(e.td,{children:\"2x Mac Studio (512GB)\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Kimi K2 Thinking\"}),(0,i.jsx)(e.td,{children:\"1T (32B active)\"}),(0,i.jsx)(e.td,{children:\"594GB\"}),(0,i.jsx)(e.td,{children:\"2x Mac Studio (512GB)\"})]})]})]}),`\n`,(0,i.jsx)(e.h3,{id:\"running-kimi-k2-thinking\",children:\"Running Kimi K2 Thinking\"}),`\n`,(0,i.jsx)(e.p,{children:\"The Kimi K2 Thinking model demonstrates the power of Thunderbolt 5 clustering. It's a 1 trillion parameter mixture-of-experts (MoE) model with 32 billion active parameters. Developed by Moonshot AI, it represents the cutting edge of open-source reasoning models.\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"What Makes Kimi K2 Special:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Architecture\"}),\": Mixture-of-Experts (MoE) with 1T total parameters\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Active Parameters\"}),\": Only 32B parameters active per inference\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Context Window\"}),\": 256K tokens\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Quantization\"}),\": Native INT4 for efficiency\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Size on Disk\"}),\": ~594GB (vs 1TB+ for full precision)\"]}),`\n`]}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"import\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mlx.core \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"as\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mx\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"from\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mlx_lm \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"import\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" load, generate\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Initialize distributed environment\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"world \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mx.distributed.init()\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Load model (automatically distributed across nodes)\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"model, tokenizer \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" load(\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"moonshotai/Kimi-K2-Instruct\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\")\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Generate text\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"prompt \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"Explain quantum computing in simple terms:\"'})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"response \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" generate(model, tokenizer, \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},children:\"prompt\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"prompt, \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},children:\"max_tokens\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"500\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\")\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"print\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"(response)\"})]})]})})}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Performance Results (4x Mac Studio M3 Ultra):\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Total Memory\"}),\": 2TB unified\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Power Consumption\"}),\": Under 500W (vs 5,000W+ for GPU cluster)\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Token Generation\"}),\": Competitive with cloud inference\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Cost Efficiency\"}),\": 10x lower power than NVIDIA RTX 5090 cluster\"]}),`\n`]}),`\n`,(0,i.jsx)(e.hr,{}),`\n`,(0,i.jsx)(e.h2,{id:\"performance-optimization\",children:\"Performance Optimization\"}),`\n`,(0,i.jsx)(e.h3,{id:\"network-topology-best-practices\",children:\"Network Topology Best Practices\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Ring Topology (Recommended for 4+ Nodes):\"})}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"\\u250C\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2510\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"\\u2502                                     \\u2502\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"\\u2502    Mac 1 \\u2190\\u2500\\u2500TB5\\u2500\\u2500\\u2192 Mac 2           \\u2502\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"\\u2502      \\u2191                \\u2193             \\u2502\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"\\u2502     TB5              TB5            \\u2502\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"\\u2502      \\u2193                \\u2191             \\u2502\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"\\u2502    Mac 4 \\u2190\\u2500\\u2500TB5\\u2500\\u2500\\u2192 Mac 3           \\u2502\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"\\u2502                                     \\u2502\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"\\u2514\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2518\"})})]})})}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Star Topology (Simple 2-3 Nodes):\"})}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,i.jsx)(e.code,{children:(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Mac 2 \\u2190\\u2500\\u2500TB5\\u2500\\u2500\\u2192 Mac 1 \\u2190\\u2500\\u2500TB5\\u2500\\u2500\\u2192 Mac 3\"})})})})}),`\n`,(0,i.jsx)(e.h3,{id:\"cable-and-connection-guidelines\",children:\"Cable and Connection Guidelines\"}),`\n`,(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:\"Factor\"}),(0,i.jsx)(e.th,{children:\"Recommendation\"}),(0,i.jsx)(e.th,{children:\"Impact\"})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Cable Length\"}),(0,i.jsx)(e.td,{children:\"Under 2 meters\"}),(0,i.jsx)(e.td,{children:\"Maintains full 80 Gbps\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Cable Quality\"}),(0,i.jsx)(e.td,{children:\"Certified TB5/USB4 v2\"}),(0,i.jsx)(e.td,{children:\"Prevents data errors\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Avoid Hubs\"}),(0,i.jsx)(e.td,{children:\"Direct connections\"}),(0,i.jsx)(e.td,{children:\"Hubs reduce to 10 Gbps\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Port Selection\"}),(0,i.jsx)(e.td,{children:\"Use all available\"}),(0,i.jsx)(e.td,{children:\"Maximizes bandwidth\"})]})]})]}),`\n`,(0,i.jsx)(e.h3,{id:\"memory-and-compute-balancing\",children:\"Memory and Compute Balancing\"}),`\n`,(0,i.jsx)(e.p,{children:\"When building a heterogeneous cluster (mixed hardware):\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# MLX automatically balances based on device capabilities\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# But you can customize partitioning:\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"import\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mlx.core \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"as\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mx\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Get distributed world info\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"world \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mx.distributed.init()\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Custom weight assignment\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"weights \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" {\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"    0\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\": \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"2.0\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\",  \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Mac Studio gets 2x share\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"    1\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\": \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"1.0\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\",  \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Mac mini gets 1x share\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"    2\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\": \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"1.0\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"    3\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\": \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"1.0\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"}\"})})]})})}),`\n`,(0,i.jsx)(e.hr,{}),`\n`,(0,i.jsx)(e.h2,{id:\"troubleshooting-common-issues\",children:\"Troubleshooting Common Issues\"}),`\n`,(0,i.jsx)(e.h3,{id:\"connection-problems\",children:\"Connection Problems\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Issue: Nodes not discovering each other\"})}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Check Thunderbolt connection status\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"system_profiler\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" SPThunderboltDataType\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Verify network interfaces\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"networksetup\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -listallhardwareports\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Test direct connectivity\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"ping\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" mac2.local\"})]})]})})}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Issue: Slow transfer speeds\"})}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Test Thunderbolt bandwidth\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"iperf3\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -c\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" mac2.local\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -p\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" 5201\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Expected: ~9-10 GB/s for TB5\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# If lower: check cable length/quality\"})})]})})}),`\n`,(0,i.jsx)(e.h3,{id:\"mlx-errors\",children:\"MLX Errors\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:'Issue: \"No distributed backend available\"'})}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Ensure MLX is properly installed\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"pip\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" install\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --upgrade\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" mlx\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Check Python version (requires 3.12+)\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"python\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --version\"})]})]})})}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:'Issue: \"Out of memory\" on distributed inference'})}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Enable memory-efficient mode\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"import\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mlx.core \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"as\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mx\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"mx.metal.set_memory_limit(\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"0.95\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\")  \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Use 95% of available memory\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Or reduce batch size\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"generate(model, tokenizer, \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},children:\"prompt\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"prompt, \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},children:\"max_tokens\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"100\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\")\"})]})]})})}),`\n`,(0,i.jsx)(e.h3,{id:\"ssh-configuration\",children:\"SSH Configuration\"}),`\n`,(0,i.jsx)(e.p,{children:\"Ensure passwordless SSH between all nodes:\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Generate SSH key if needed\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"ssh-keygen\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -t\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" ed25519\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Copy to all nodes\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"ssh-copy-id\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" user@mac2.local\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"ssh-copy-id\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" user@mac3.local\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"ssh-copy-id\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" user@mac4.local\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Test\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"ssh\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" mac2.local\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"hostname\"'})]})]})})}),`\n`,(0,i.jsx)(e.hr,{}),`\n`,(0,i.jsx)(e.h2,{id:\"power-efficiency-and-cost-analysis\",children:\"Power Efficiency and Cost Analysis\"}),`\n`,(0,i.jsx)(e.h3,{id:\"power-consumption-comparison\",children:\"Power Consumption Comparison\"}),`\n`,(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:\"Configuration\"}),(0,i.jsx)(e.th,{children:\"Power Draw\"}),(0,i.jsx)(e.th,{children:\"Performance\"}),(0,i.jsx)(e.th,{children:\"$/Performance\"})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"4x Mac Studio (512GB)\"}),(0,i.jsx)(e.td,{children:\"~500W\"}),(0,i.jsx)(e.td,{children:\"Trillion-parameter capable\"}),(0,i.jsx)(e.td,{children:\"Best\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"NVIDIA H100 Cluster (4x)\"}),(0,i.jsx)(e.td,{children:\"~2,800W\"}),(0,i.jsx)(e.td,{children:\"Similar capability\"}),(0,i.jsx)(e.td,{children:\"5.6x more power\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"NVIDIA RTX 5090 Cluster\"}),(0,i.jsx)(e.td,{children:\"~2,300W\"}),(0,i.jsx)(e.td,{children:\"Limited VRAM\"}),(0,i.jsx)(e.td,{children:\"4.6x more power\"})]})]})]}),`\n`,(0,i.jsx)(e.h3,{id:\"total-cost-of-ownership\",children:\"Total Cost of Ownership\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Mac Studio Cluster (2TB Configuration):\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Hardware: $47,000\"}),`\n`,(0,i.jsx)(e.li,{children:\"Annual Power (24/7): ~$500\"}),`\n`,(0,i.jsx)(e.li,{children:\"Maintenance: Minimal\"}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"5-Year TCO\"}),\": ~$49,500\"]}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Equivalent GPU Cluster:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Hardware: $100,000+\"}),`\n`,(0,i.jsx)(e.li,{children:\"Annual Power (24/7): ~$3,000\"}),`\n`,(0,i.jsx)(e.li,{children:\"Cooling Infrastructure: $10,000+\"}),`\n`,(0,i.jsx)(e.li,{children:\"Maintenance: Significant\"}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"5-Year TCO\"}),\": ~$130,000+\"]}),`\n`]}),`\n`,(0,i.jsx)(e.hr,{}),`\n`,(0,i.jsx)(e.h2,{id:\"use-cases-and-applications\",children:\"Use Cases and Applications\"}),`\n`,(0,i.jsx)(e.h3,{id:\"machine-learning-research\",children:\"Machine Learning Research\"}),`\n`,(0,i.jsx)(e.p,{children:\"Thunderbolt 5 clustering excels for academic and corporate ML research:\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Research Applications:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Model Training\"}),\": Distributed training across multiple Macs with gradient synchronization\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Fine-Tuning\"}),\": Local fine-tuning of large models on proprietary datasets\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Inference\"}),\": Running trillion-parameter models locally for experimentation\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Ablation Studies\"}),\": Rapid prototyping without waiting for cloud GPU availability\"]}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Example Research Workflow:\"})}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"import\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mlx.core \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"as\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mx\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"from\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mlx_lm \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"import\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" load, generate\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Load your fine-tuned model\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"model, tokenizer \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" load(\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"./my-finetuned-model\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\")\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Run experiments across distributed cluster\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"for\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" prompt \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"in\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" research_prompts:\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"    response \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" generate(model, tokenizer, \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},children:\"prompt\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"prompt)\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"    log_result(prompt, response)\"})})]})})}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Universities and Research Labs\"}),\" benefit from:\"]}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Fixed hardware costs vs unpredictable cloud billing\"}),`\n`,(0,i.jsx)(e.li,{children:\"Complete data privacy for sensitive research\"}),`\n`,(0,i.jsx)(e.li,{children:\"Teaching resources for distributed computing courses\"}),`\n`,(0,i.jsx)(e.li,{children:\"Publication-ready reproducible experiments\"}),`\n`]}),`\n`,(0,i.jsx)(e.h3,{id:\"professional-creative-workflows\",children:\"Professional Creative Workflows\"}),`\n`,(0,i.jsx)(e.p,{children:\"Integration with Apple's creative ecosystem provides unique advantages:\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Video Production:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Distributed Rendering\"}),\": Final Cut Pro, DaVinci Resolve, Motion projects\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"AI-Assisted Editing\"}),\": Local AI models for scene detection, transcription\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Color Grading\"}),\": GPU-accelerated color processing across nodes\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"8K RAW Processing\"}),\": Sufficient memory for large video files\"]}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Audio Production:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Logic Pro Distributed Processing\"}),\": Plugin rendering across nodes\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"AI Music Generation\"}),\": Run local music AI models\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Audio Restoration\"}),\": ML-based noise reduction locally\"]}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"3D and Motion Graphics:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Blender Distributed Rendering\"}),\": Cycles rendering across Mac cluster\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Cinema 4D\"}),\": CPU rendering with cluster support\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Houdini\"}),\": Simulation distribution (with appropriate plugins)\"]}),`\n`]}),`\n`,(0,i.jsxs)(e.p,{children:[\"For more on creative workflows, see our \",(0,i.jsx)(e.a,{href:\"/blog/macos-tahoe-professional-workflow-revolution-complete-guide\",children:\"macOS Tahoe Professional Workflow Revolution Guide\"}),\".\"]}),`\n`,(0,i.jsx)(e.h3,{id:\"development-and-testing\",children:\"Development and Testing\"}),`\n`,(0,i.jsx)(e.p,{children:\"Modern AI application development benefits significantly from local clusters:\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"AI-Powered Application Development:\"})}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Example: Building an AI chatbot with local inference\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"from\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" flask \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"import\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" Flask, request, jsonify\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"import\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mlx.core \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"as\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mx\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"from\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" mlx_lm \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"import\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" load, generate\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"app \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" Flask(\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"__name__\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\")\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"model, tokenizer \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" load(\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"llama-3.1-70b\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\")\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"@app.route\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"(\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\"'/chat'\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\", \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},children:\"methods\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"[\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\"'POST'\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"])\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"def\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\" chat\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"():\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"    prompt \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" request.json[\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\"'message'\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"]\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"    response \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" generate(model, tokenizer, \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},children:\"prompt\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"prompt)\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"    return\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" jsonify({\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\"'response'\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\": response})\"})]})]})})}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Developer Benefits:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Local LLM Development\"}),\": Test and iterate without API rate limits\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"CI/CD Acceleration\"}),\": Distributed build and test systems\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"AI Application Development\"}),\": Build apps with local AI backends\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Cost-Free Experimentation\"}),\": No per-request charges during development\"]}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Testing Advantages:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Test against production-scale models locally\"}),`\n`,(0,i.jsx)(e.li,{children:\"No network latency in test environments\"}),`\n`,(0,i.jsx)(e.li,{children:\"Consistent, reproducible test results\"}),`\n`,(0,i.jsx)(e.li,{children:\"Full control over model versions\"}),`\n`]}),`\n`,(0,i.jsxs)(e.p,{children:[\"Check our \",(0,i.jsx)(e.a,{href:\"/blog/macos-tahoe-developer-setup-npm-python-xcode-fix-guide-2025\",children:\"macOS Tahoe Developer Setup Guide\"}),\" for development environment configuration.\"]}),`\n`,(0,i.jsx)(e.h3,{id:\"enterprise-deployment-scenarios\",children:\"Enterprise Deployment Scenarios\"}),`\n`,(0,i.jsx)(e.p,{children:\"Large organizations are deploying Mac clusters for:\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Internal AI Assistants:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Private ChatGPT-style interfaces\"}),`\n`,(0,i.jsx)(e.li,{children:\"Document analysis and summarization\"}),`\n`,(0,i.jsx)(e.li,{children:\"Code review and generation\"}),`\n`,(0,i.jsx)(e.li,{children:\"Meeting transcription and analysis\"}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Compliance-Sensitive Industries:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Healthcare\"}),\": HIPAA-compliant AI processing\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Finance\"}),\": On-premises model inference\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Legal\"}),\": Confidential document analysis\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Government\"}),\": Air-gapped AI capabilities\"]}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Cost-Benefit Analysis for Enterprise:\"})}),`\n`,(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:\"Scenario\"}),(0,i.jsx)(e.th,{children:\"Cloud Cost/Year\"}),(0,i.jsx)(e.th,{children:\"Mac Cluster Cost/Year\"}),(0,i.jsx)(e.th,{children:\"Savings\"})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Light (1M tokens/day)\"}),(0,i.jsx)(e.td,{children:\"~$11,000\"}),(0,i.jsx)(e.td,{children:\"~$3,000 (amortized)\"}),(0,i.jsx)(e.td,{children:\"73%\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Medium (10M tokens/day)\"}),(0,i.jsx)(e.td,{children:\"~$110,000\"}),(0,i.jsx)(e.td,{children:\"~$15,000 (amortized)\"}),(0,i.jsx)(e.td,{children:\"86%\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Heavy (100M tokens/day)\"}),(0,i.jsx)(e.td,{children:\"~$1.1M\"}),(0,i.jsx)(e.td,{children:\"~$60,000 (amortized)\"}),(0,i.jsx)(e.td,{children:\"95%\"})]})]})]}),`\n`,(0,i.jsx)(e.hr,{}),`\n`,(0,i.jsx)(e.h2,{id:\"future-of-mac-clustering\",children:\"Future of Mac Clustering\"}),`\n`,(0,i.jsx)(e.h3,{id:\"m5-and-beyond\",children:\"M5 and Beyond\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"The \",(0,i.jsx)(e.a,{href:\"/blog/apple-m5-chip-complete-analysis-2025\",children:\"Apple M5 chip\"}),\" introduces Neural Accelerators in every GPU core, delivering 4x AI performance improvement. When combined with Thunderbolt 5 clustering:\"]}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Enhanced MLX Support\"}),\": Full access to M5 neural accelerators\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Improved Memory Bandwidth\"}),\": 153GB/s per chip\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Better Power Efficiency\"}),\": More performance per watt\"]}),`\n`]}),`\n`,(0,i.jsx)(e.h3,{id:\"mac-pro-implications\",children:\"Mac Pro Implications\"}),`\n`,(0,i.jsx)(e.p,{children:'According to reports, Apple has \"largely written off the Mac Pro\" internally. Thunderbolt 5 clustering provides an alternative path:'}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Scalable Performance\"}),\": Add nodes as needed\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Lower Entry Cost\"}),\": Start small, expand later\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Flexibility\"}),\": Mix different Mac models\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Future-Proof\"}),\": Upgrade individual nodes over time\"]}),`\n`]}),`\n`,(0,i.jsx)(e.hr,{}),`\n`,(0,i.jsx)(e.h2,{id:\"security-and-privacy-considerations\",children:\"Security and Privacy Considerations\"}),`\n`,(0,i.jsx)(e.h3,{id:\"why-local-processing-matters\",children:\"Why Local Processing Matters\"}),`\n`,(0,i.jsx)(e.p,{children:\"One of the most significant advantages of Mac clustering over cloud-based AI is complete data privacy. Your prompts, training data, and generated outputs never leave your local network.\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Privacy Benefits:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"No data transmission\"}),\": All processing happens on-premises\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Compliance friendly\"}),\": Easier HIPAA, GDPR, SOC2 compliance\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"IP protection\"}),\": Proprietary data stays private\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"No logging concerns\"}),\": Full control over usage logs\"]}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Security Best Practices for Mac Clusters:\"})}),`\n`,(0,i.jsxs)(e.ol,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Network Isolation\"}),\": Keep your cluster on a dedicated VLAN\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Firewall Configuration\"}),\": Block external access to cluster ports\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"SSH Key Management\"}),\": Use ed25519 keys, rotate regularly\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"macOS Security\"}),\": Enable FileVault, keep systems updated\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Physical Security\"}),\": Secure server room access\"]}),`\n`]}),`\n`,(0,i.jsxs)(e.p,{children:[\"For comprehensive macOS security configuration, see our \",(0,i.jsx)(e.a,{href:\"/blog/macos-tahoe-security-privacy-complete-guide-2025\",children:\"macOS Tahoe Security & Privacy Guide\"}),\".\"]}),`\n`,(0,i.jsx)(e.hr,{}),`\n`,(0,i.jsx)(e.h2,{id:\"real-world-performance-benchmarks\",children:\"Real-World Performance Benchmarks\"}),`\n`,(0,i.jsx)(e.h3,{id:\"inference-speed-comparison\",children:\"Inference Speed Comparison\"}),`\n`,(0,i.jsx)(e.p,{children:\"Based on community testing and Apple's demonstrations:\"}),`\n`,(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:\"Model\"}),(0,i.jsx)(e.th,{children:\"Configuration\"}),(0,i.jsx)(e.th,{children:\"Tokens/Second\"}),(0,i.jsx)(e.th,{children:\"Comparison\"})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Llama 3.1 70B\"}),(0,i.jsx)(e.td,{children:\"2x Mac mini M4 Pro (64GB)\"}),(0,i.jsx)(e.td,{children:\"~35 tok/s\"}),(0,i.jsx)(e.td,{children:\"Comparable to RTX 4090\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Llama 3.1 405B\"}),(0,i.jsx)(e.td,{children:\"4x Mac Studio (512GB)\"}),(0,i.jsx)(e.td,{children:\"~15 tok/s\"}),(0,i.jsx)(e.td,{children:\"Exceeds cloud A100\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Kimi K2\"}),(0,i.jsx)(e.td,{children:\"2x Mac Studio (512GB)\"}),(0,i.jsx)(e.td,{children:\"~20 tok/s\"}),(0,i.jsx)(e.td,{children:\"First local trillion-param\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"DeepSeek V3\"}),(0,i.jsx)(e.td,{children:\"4x Mac Studio (512GB)\"}),(0,i.jsx)(e.td,{children:\"~12 tok/s\"}),(0,i.jsx)(e.td,{children:\"Previously cloud-only\"})]})]})]}),`\n`,(0,i.jsx)(e.h3,{id:\"latency-analysis\",children:\"Latency Analysis\"}),`\n`,(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:\"Metric\"}),(0,i.jsx)(e.th,{children:\"Mac Cluster\"}),(0,i.jsx)(e.th,{children:\"Cloud API\"}),(0,i.jsx)(e.th,{children:\"Difference\"})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"First Token\"}),(0,i.jsx)(e.td,{children:\"100-500ms\"}),(0,i.jsx)(e.td,{children:\"500-2000ms\"}),(0,i.jsx)(e.td,{children:\"2-10x faster\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Consistent Latency\"}),(0,i.jsx)(e.td,{children:\"Yes\"}),(0,i.jsx)(e.td,{children:\"Variable\"}),(0,i.jsx)(e.td,{children:\"More predictable\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Cold Start\"}),(0,i.jsx)(e.td,{children:\"None\"}),(0,i.jsx)(e.td,{children:\"5-30s\"}),(0,i.jsx)(e.td,{children:\"No waiting\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Availability\"}),(0,i.jsx)(e.td,{children:\"100% (local)\"}),(0,i.jsx)(e.td,{children:\"99.9%\"}),(0,i.jsx)(e.td,{children:\"No outages\"})]})]})]}),`\n`,(0,i.jsx)(e.h3,{id:\"cost-per-token-comparison\",children:\"Cost Per Token Comparison\"}),`\n`,(0,i.jsx)(e.p,{children:\"Assuming 24/7 operation over 1 year:\"}),`\n`,(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:\"Solution\"}),(0,i.jsx)(e.th,{children:\"Hardware Cost\"}),(0,i.jsx)(e.th,{children:\"Operating Cost\"}),(0,i.jsx)(e.th,{children:\"Total 1-Year\"}),(0,i.jsx)(e.th,{children:\"Cost/1M Tokens\"})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"4x Mac Studio Cluster\"}),(0,i.jsx)(e.td,{children:\"$47,000\"}),(0,i.jsx)(e.td,{children:\"~$500\"}),(0,i.jsx)(e.td,{children:\"$47,500\"}),(0,i.jsx)(e.td,{children:\"~$0.02\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"OpenAI GPT-4\"}),(0,i.jsx)(e.td,{children:\"$0\"}),(0,i.jsx)(e.td,{children:\"Usage-based\"}),(0,i.jsx)(e.td,{children:\"Variable\"}),(0,i.jsx)(e.td,{children:\"~$30.00\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Claude API\"}),(0,i.jsx)(e.td,{children:\"$0\"}),(0,i.jsx)(e.td,{children:\"Usage-based\"}),(0,i.jsx)(e.td,{children:\"Variable\"}),(0,i.jsx)(e.td,{children:\"~$15.00\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"AWS Bedrock\"}),(0,i.jsx)(e.td,{children:\"$0\"}),(0,i.jsx)(e.td,{children:\"Usage-based\"}),(0,i.jsx)(e.td,{children:\"Variable\"}),(0,i.jsx)(e.td,{children:\"~$10.00\"})]})]})]}),`\n`,(0,i.jsx)(e.p,{children:\"For heavy users (>100M tokens/year), local Mac clustering becomes significantly more economical.\"}),`\n`,(0,i.jsx)(e.hr,{}),`\n`,(0,i.jsx)(e.h2,{id:\"faq\",children:\"FAQ\"}),`\n`,(0,i.jsx)(e.h3,{id:\"how-many-macs-can-i-connect-in-a-cluster\",children:\"How many Macs can I connect in a cluster?\"}),`\n`,(0,i.jsx)(e.p,{children:\"The practical limit depends on your topology. With direct Thunderbolt connections (avoiding hubs), you can connect 4-6 Macs efficiently. Using a ring topology allows scaling to more nodes while maintaining full bandwidth. Beyond 6 nodes, you'll need careful topology planning to avoid bandwidth bottlenecks.\"}),`\n`,(0,i.jsx)(e.h3,{id:\"do-i-need-identical-macs-for-clustering\",children:\"Do I need identical Macs for clustering?\"}),`\n`,(0,i.jsx)(e.p,{children:\"No, MLX and EXO support heterogeneous clusters. However, the cluster will be limited by the slowest component. For best results, use similar-generation Macs with matching Thunderbolt versions. Memory distribution will be weighted by each node's available RAM.\"}),`\n`,(0,i.jsx)(e.h3,{id:\"can-i-use-thunderbolt-4-macs-in-a-cluster\",children:\"Can I use Thunderbolt 4 Macs in a cluster?\"}),`\n`,(0,i.jsx)(e.p,{children:\"Yes, but bandwidth will be limited to 40 Gbps on those connections. Thunderbolt 5 and 4 are backward compatible. The system will operate at the lower speed when mixing generations. For best performance, keep TB4 nodes as leaf nodes rather than in the middle of a ring.\"}),`\n`,(0,i.jsx)(e.h3,{id:\"whats-the-minimum-memory-needed-for-clustering\",children:\"What's the minimum memory needed for clustering?\"}),`\n`,(0,i.jsx)(e.p,{children:\"The total cluster memory must exceed your model's memory requirement with some headroom for operations. For Llama 3.1 70B (140GB model), you need at least 3 Macs with 48GB each (144GB total). We recommend 10-20% headroom above model size.\"}),`\n`,(0,i.jsx)(e.h3,{id:\"is-mac-clustering-suitable-for-training-or-only-inference\",children:\"Is Mac clustering suitable for training or only inference?\"}),`\n`,(0,i.jsx)(e.p,{children:\"Both! MLX supports distributed training with gradient averaging across nodes. However, inference is the primary use case due to the memory pooling benefits for large models. Training requires more inter-node communication and is more sensitive to network latency.\"}),`\n`,(0,i.jsx)(e.h3,{id:\"how-does-this-compare-to-cloud-gpu-instances\",children:\"How does this compare to cloud GPU instances?\"}),`\n`,(0,i.jsx)(e.p,{children:\"For long-term use (more than 6 months of regular usage), Mac clustering is more cost-effective. You own the hardware, have no per-hour charges, and achieve competitive performance. For occasional use or experimentation, cloud instances may be more economical initially.\"}),`\n`,(0,i.jsx)(e.h3,{id:\"can-i-run-the-cluster-247\",children:\"Can I run the cluster 24/7?\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"Absolutely. Mac hardware is designed for continuous operation. Mac Studios in particular have excellent thermal management for sustained workloads. Monitor temperatures using Activity Monitor or \",(0,i.jsx)(e.code,{children:\"sudo powermetrics\"}),\" and ensure adequate ventilation.\"]}),`\n`,(0,i.jsx)(e.h3,{id:\"what-happens-if-one-node-fails\",children:\"What happens if one node fails?\"}),`\n`,(0,i.jsx)(e.p,{children:\"Currently, MLX clustering doesn't support hot-swapping or automatic failover. If a node disconnects, the job will fail and need to be restarted. For critical workloads, implement checkpointing in your code to resume from the last saved state.\"}),`\n`,(0,i.jsx)(e.h3,{id:\"can-i-use-the-cluster-while-running-ai-workloads\",children:\"Can I use the cluster while running AI workloads?\"}),`\n`,(0,i.jsx)(e.p,{children:\"Yes, but performance may be impacted. The EXO interface allows background operation while you use the Macs for other tasks. For best inference performance, minimize other activities during heavy AI workloads.\"}),`\n`,(0,i.jsx)(e.hr,{}),`\n`,(0,i.jsx)(e.h2,{id:\"conclusion\",children:\"Conclusion\"}),`\n`,(0,i.jsx)(e.p,{children:\"macOS Tahoe 26.2's Thunderbolt 5 clustering represents a paradigm shift in local AI computing. By combining multiple Macs into a unified supercomputer, users can run trillion-parameter models at a fraction of traditional GPU cluster costs.\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Key Benefits:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"10x lower power consumption than GPU alternatives\"}),`\n`,(0,i.jsx)(e.li,{children:\"No specialized hardware required\"}),`\n`,(0,i.jsx)(e.li,{children:\"Simple setup with MLX and EXO\"}),`\n`,(0,i.jsx)(e.li,{children:\"Scalable from 2 to 6+ nodes\"}),`\n`,(0,i.jsx)(e.li,{children:\"Local, private AI processing\"}),`\n`]}),`\n`,(0,i.jsxs)(e.p,{children:[\"For users invested in the Apple ecosystem, this feature alone may justify the upgrade to macOS Tahoe 26.2. Check our \",(0,i.jsx)(e.a,{href:\"/blog/macos-tahoe-26-2-update-complete-guide-2025\",children:\"macOS Tahoe 26.2 Update Guide\"}),\" for complete update instructions.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Ready to optimize your Mac for AI workloads?\"}),\" Start with our \",(0,i.jsx)(e.a,{href:\"/blog/macos-tahoe-storage-management-optimization-guide-2025\",children:\"macOS Tahoe Storage Management Guide\"}),\" to ensure you have adequate space for large models.\"]}),`\n`,(0,i.jsx)(e.hr,{}),`\n`,(0,i.jsx)(e.h2,{id:\"sources\",children:\"Sources\"}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.a,{href:\"https://appleinsider.com/articles/25/11/18/macos-tahoe-262-will-give-m5-macs-a-giant-machine-learning-speed-boost\",children:\"ML in macOS Tahoe gets GPU, Thunderbolt 5 clustering boost\"}),\" - Apple Insider, November 2025\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.a,{href:\"https://www.engadget.com/ai/you-can-turn-a-cluster-of-macs-into-an-ai-supercomputer-in-macos-tahoe-262-191500778.html\",children:\"You can turn a cluster of Macs into an AI supercomputer in macOS Tahoe 26.2\"}),\" - Engadget, November 2025\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.a,{href:\"https://9to5mac.com/2025/11/19/a-cluster-of-mac-studios-is-just-one-reason-we-no-longer-need-a-mac-pro/\",children:\"A cluster of Mac Studios is just one reason we no longer need a Mac Pro\"}),\" - 9to5Mac, November 2025\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.a,{href:\"https://www.heise.de/en/news/AI-Cluster-Four-Macs-with-2-TB-can-run-the-giant-model-Kimi-K2-Thinking-11085716.html\",children:\"AI Cluster: Four Macs with 2 TB can run the giant model Kimi K2 Thinking\"}),\" - Heise Online, November 2025\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.a,{href:\"https://ml-explore.github.io/mlx/build/html/usage/distributed.html\",children:\"MLX Distributed Communication Documentation\"}),\" - Apple MLX Official Docs\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.a,{href:\"https://github.com/exo-explore/exo\",children:\"EXO: Run your own AI cluster at home\"}),\" - EXO Labs GitHub\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.a,{href:\"https://developer.apple.com/videos/play/wwdc2025/298/\",children:\"Explore large language models on Apple silicon with MLX - WWDC25\"}),\" - Apple Developer\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.a,{href:\"https://moonshotai.github.io/Kimi-K2/\",children:\"Kimi K2 - Moonshot AI\"}),\" - Moonshot AI Official\"]}),`\n`]})]})}function o(n={}){let{wrapper:e}=n.components||{};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(c,{...n})}):c(n)}return f(F);})();\n;return Component;","toc":[{"title":"Key Takeaways","url":"#key-takeaways","depth":2},{"title":"Executive Summary: Understanding Mac Clustering Technology","url":"#executive-summary-understanding-mac-clustering-technology","depth":2},{"title":"Why Thunderbolt 5 Clustering Matters","url":"#why-thunderbolt-5-clustering-matters","depth":3},{"title":"Who Benefits from Mac Clustering?","url":"#who-benefits-from-mac-clustering","depth":3},{"title":"What is Thunderbolt 5 Mac Clustering?","url":"#what-is-thunderbolt-5-mac-clustering","depth":2},{"title":"The Evolution of Mac Distributed Computing","url":"#the-evolution-of-mac-distributed-computing","depth":3},{"title":"How Thunderbolt 5 Clustering Works","url":"#how-thunderbolt-5-clustering-works","depth":3},{"title":"Apple Silicon Unified Memory Advantage","url":"#apple-silicon-unified-memory-advantage","depth":3},{"title":"Hardware Requirements and Compatibility","url":"#hardware-requirements-and-compatibility","depth":2},{"title":"Compatible Mac Models","url":"#compatible-mac-models","depth":3},{"title":"Recommended Cluster Configurations","url":"#recommended-cluster-configurations","depth":3},{"title":"Thunderbolt 5 Cable Selection Guide","url":"#thunderbolt-5-cable-selection-guide","depth":3},{"title":"Software Stack: MLX and EXO Frameworks","url":"#software-stack-mlx-and-exo-frameworks","depth":2},{"title":"Understanding MLX Distributed Computing","url":"#understanding-mlx-distributed-computing","depth":3},{"title":"MLX Communication Backends","url":"#mlx-communication-backends","depth":3},{"title":"Understanding Distributed Training vs Inference","url":"#understanding-distributed-training-vs-inference","depth":3},{"title":"EXO: Simplified Cluster Management","url":"#exo-simplified-cluster-management","depth":3},{"title":"Step-by-Step Cluster Setup Guide","url":"#step-by-step-cluster-setup-guide","depth":2},{"title":"Prerequisites","url":"#prerequisites","depth":3},{"title":"Method 1: MLX Native Setup (Recommended)","url":"#method-1-mlx-native-setup-recommended","depth":3},{"title":"Step 1: Install MLX","url":"#step-1-install-mlx","depth":4},{"title":"Step 2: Configure Thunderbolt Network","url":"#step-2-configure-thunderbolt-network","depth":4},{"title":"Step 3: Create Hostfile Configuration","url":"#step-3-create-hostfile-configuration","depth":4},{"title":"Step 4: Test Distributed Communication","url":"#step-4-test-distributed-communication","depth":4},{"title":"Method 2: EXO Setup (User-Friendly)","url":"#method-2-exo-setup-user-friendly","depth":3},{"title":"Step 1: Clone and Install EXO","url":"#step-1-clone-and-install-exo","depth":4},{"title":"Step 2: Configure MLX for Apple Silicon","url":"#step-2-configure-mlx-for-apple-silicon","depth":4},{"title":"Step 3: Start the Cluster","url":"#step-3-start-the-cluster","depth":4},{"title":"Step 4: Access the Interface","url":"#step-4-access-the-interface","depth":4},{"title":"Running Large Language Models","url":"#running-large-language-models","depth":2},{"title":"Downloading Models","url":"#downloading-models","depth":3},{"title":"Memory Requirements by Model","url":"#memory-requirements-by-model","depth":3},{"title":"Running Kimi K2 Thinking","url":"#running-kimi-k2-thinking","depth":3},{"title":"Performance Optimization","url":"#performance-optimization","depth":2},{"title":"Network Topology Best Practices","url":"#network-topology-best-practices","depth":3},{"title":"Cable and Connection Guidelines","url":"#cable-and-connection-guidelines","depth":3},{"title":"Memory and Compute Balancing","url":"#memory-and-compute-balancing","depth":3},{"title":"Troubleshooting Common Issues","url":"#troubleshooting-common-issues","depth":2},{"title":"Connection Problems","url":"#connection-problems","depth":3},{"title":"MLX Errors","url":"#mlx-errors","depth":3},{"title":"SSH Configuration","url":"#ssh-configuration","depth":3},{"title":"Power Efficiency and Cost Analysis","url":"#power-efficiency-and-cost-analysis","depth":2},{"title":"Power Consumption Comparison","url":"#power-consumption-comparison","depth":3},{"title":"Total Cost of Ownership","url":"#total-cost-of-ownership","depth":3},{"title":"Use Cases and Applications","url":"#use-cases-and-applications","depth":2},{"title":"Machine Learning Research","url":"#machine-learning-research","depth":3},{"title":"Professional Creative Workflows","url":"#professional-creative-workflows","depth":3},{"title":"Development and Testing","url":"#development-and-testing","depth":3},{"title":"Enterprise Deployment Scenarios","url":"#enterprise-deployment-scenarios","depth":3},{"title":"Future of Mac Clustering","url":"#future-of-mac-clustering","depth":2},{"title":"M5 and Beyond","url":"#m5-and-beyond","depth":3},{"title":"Mac Pro Implications","url":"#mac-pro-implications","depth":3},{"title":"Security and Privacy Considerations","url":"#security-and-privacy-considerations","depth":2},{"title":"Why Local Processing Matters","url":"#why-local-processing-matters","depth":3},{"title":"Real-World Performance Benchmarks","url":"#real-world-performance-benchmarks","depth":2},{"title":"Inference Speed Comparison","url":"#inference-speed-comparison","depth":3},{"title":"Latency Analysis","url":"#latency-analysis","depth":3},{"title":"Cost Per Token Comparison","url":"#cost-per-token-comparison","depth":3},{"title":"FAQ","url":"#faq","depth":2},{"title":"How many Macs can I connect in a cluster?","url":"#how-many-macs-can-i-connect-in-a-cluster","depth":3},{"title":"Do I need identical Macs for clustering?","url":"#do-i-need-identical-macs-for-clustering","depth":3},{"title":"Can I use Thunderbolt 4 Macs in a cluster?","url":"#can-i-use-thunderbolt-4-macs-in-a-cluster","depth":3},{"title":"What's the minimum memory needed for clustering?","url":"#whats-the-minimum-memory-needed-for-clustering","depth":3},{"title":"Is Mac clustering suitable for training or only inference?","url":"#is-mac-clustering-suitable-for-training-or-only-inference","depth":3},{"title":"How does this compare to cloud GPU instances?","url":"#how-does-this-compare-to-cloud-gpu-instances","depth":3},{"title":"Can I run the cluster 24/7?","url":"#can-i-run-the-cluster-247","depth":3},{"title":"What happens if one node fails?","url":"#what-happens-if-one-node-fails","depth":3},{"title":"Can I use the cluster while running AI workloads?","url":"#can-i-use-the-cluster-while-running-ai-workloads","depth":3},{"title":"Conclusion","url":"#conclusion","depth":2},{"title":"Sources","url":"#sources","depth":2}],"estimatedTime":23}