M4 Mac mini のコレクションをクラスター内で使用する方法はありますが、実際にメリットが得られるのはハイエンド Mac を使用する場合のみです。
より高性能なコンピューターを持つには、高価なデバイスを1台購入する必要があると考える人が多いですが、大量の計算を実行する方法は他にもあります。数十年前から存在する概念の一つに、複数のコンピューターを使ってプロジェクトの処理を担うというものがあります。
クラスタコンピューティングの概念は、2つ以上の処理ユニット間で大量の計算を共有するタスクを中心に展開されます。これらのユニットが連携してタスクを並列処理することで、処理時間が大幅に短縮されます。
日曜日にYouTubeに公開された動画で、アレックス・ジスキンド氏はM4 Mac miniを使ったクラスターコンピューティングのセットアップを実演しています。プラスチック製のフレームに積み重ねられた5台のMac miniを使い、タスクを設定して各Mac miniに分散処理させています。
一般的なホームクラスターコンピューティングのセットアップでは、ノード間の通信にイーサネットネットワークが利用されていますが、ZiskindはThunderbolt Bridgeを使用することで、Thunderboltの速度を活用しています。これにより、ノード間の通信が大幅に高速化されるだけでなく、より大きなデータパケットを送信できるため、処理パフォーマンスも向上します。
Ethernetは通常1Gb/sで動作しますが、一部のMacモデルではEthernetアップグレードを有料で購入すれば最大10Gb/sまで対応します。Thunderbolt Bridge方式では、双方向接続の場合、Thunderbolt 4ポートでは40Gb/s、M4 ProおよびM4 MaxモデルのThunderbolt 5ポートでは80Gb/sで動作します。
GPU処理よりも優れている
Ziskind 氏は、クラスター コンピューティングには強力なグラフィック カードを使用する PC ではなく、Apple Silicon を使用する方がメリットがある可能性があると指摘しています。
まず、GPUを使った処理には、相当量のビデオメモリが必要です。例えば、グラフィックカードの場合、カード自体に8GBものメモリが搭載されていることがあります。
AppleがApple Siliconで統合メモリを採用しているということは、MacのメモリがCPUとGPUの両方で使用されることを意味します。そのため、特に32GB以上のメモリを搭載したMacでは、Apple Silicon GPUはより多くのメモリにアクセスできるようになります。
さらに、グラフィックカードの消費電力は相当なものになる場合があります。消費電力が高いと、継続的な運用コストも高くなります。
対照的に、Mac mini は非常に少ない電力しか使用しないことがわかり、フル稼働の 5 台の Mac mini のクラスターは、1 枚の高性能グラフィック カードよりも少ない電力を消費しました。
MLX、Xgridではありません
クラスターを稼働させるために、Ziskind氏はすでに紹介したプロジェクトを活用しています。MLXはAppleのオープンソースプロジェクトで、「Apple Silicon上で効率的かつ柔軟な機械学習研究を行うために設計されたアレイフレームワーク」と説明されています。
これは、Appleの長らく廃止された分散コンピューティングソリューションであるXgridを彷彿とさせます。Xgridは複数のMacを制御してクラスタコンピューティングを実現できました。このシステムでは、Mac OS X Serverがネットワーク上のワークグループMacを、他の用途に使用されていない時に処理を実行するために利用することもできました。
しかし、 AppleInsiderのマイク・ウーテル氏が証言しているように、Xgridは企業や連邦政府レベルで潤沢な資金が投入された大規模な運用には有効でしたが、小規模なプロジェクトにはうまく適用できませんでした。完璧かつ特定の状況、そして特定のコードの下では素晴らしいパフォーマンスを発揮しましたが、自作のクラスターではパフォーマンスがあまり良くなく、時には単一のコンピューターで作業するよりも遅くなることもありました。
MLXは標準的なMPI分散コンピューティング手法を採用しているため、この点は大きく異なります。数百台、数千台ものMacを購入する必要もなく、パフォーマンスの異なる数台のMacで動作させることも可能です。
Xgrid とは異なり、MLX はより小規模なクラスター、つまり Xgrid を使用したいがトラブルに遭遇し続けているユーザー向けに設計されているようです。
正しい理由で役立つクラスター
複数の Mac mini のパフォーマンスをクラスターで合計するのは魅力的に思えますが、誰もが恩恵を受けられるわけではありません。
まず、アプリの実行やゲームのプレイといったMacの典型的な用途ではメリットを実感できないでしょう。これは、大規模なデータセットの処理や、並列処理の恩恵を受ける高負荷タスク向けに設計されています。
これにより、たとえば機械学習研究用の LLM を作成するなどの目的に最適です。
また、一般的な Mac ユーザーにとって、それほど使いやすいものではありません。
また、パフォーマンスの向上は、一般的なMacユーザーにとって必ずしも大きなメリットとなるわけではありません。Ziskind氏はテストで、M4 Proモデルを購入するだけで、LLMを使用する場合、2台のM4ユニットを連携させるよりもパフォーマンスが向上することを発見しました。
複数のハイスペックMacを一緒に使う場合、クラスターは本当に価値があります
このようなクラスターが活躍するのは、1台の高性能Macでは得られないパフォーマンスが必要な場合です。メモリの制約などにより、モデルが1台のMacで動作させるには大きすぎる場合、クラスターを使用することで、モデルが使用できるメモリの総量を増やすことができます。
Ziskind氏は、現段階では、大容量メモリを搭載したハイエンドのM4 Max Macの方が、低性能マシンのクラスターよりも優れていると述べています。しかし、それでも、要件が何らかの理由で単一のMacの最高構成を超える場合は、クラスターが役立ちます。
しかし、考慮すべき制限事項もいくつかあります。Thunderboltは高速ですが、Ziskind氏はノードをホストMacに接続するためにThunderboltハブを使用する必要があり、利用可能な帯域幅が減少しました。
Macを直接接続することでこの問題を解決できましたが、複数のMacを接続するために利用できるThunderboltポートの数などの問題に直面しました。これにより、クラスタのスケーリングが困難になる可能性があります。
また、ノードがより適切なレベルで動作している一方で、ホスト Mac mini が特に熱くなるという異常な熱現象にも遭遇しました。
最終的に、ジスキンド氏はMac miniのクラスタータワー実験は興味深いと感じたものの、長期的に使用するつもりはないとのことです。しかし、この技術はまだ比較的初期段階であり、十分に頑丈なモデルに複数のハイエンドMacを組み合わせる場合は、依然として非常にうまく機能する可能性があります。