24コア・192GBのミニワークステーション「MS-02 Ultra」を3台つないでクラスタ計算を試す

YouTubeで開く ↗
概要

Minisforumはミニ PCで知られるメーカーだが、ワークステーション型のモデルも出している。この動画では、その小型ワークステーション「MS-02 Ultra」を3台用意し、クラスタ計算機として使う。多コアCPUを使い切る題材としてモンテカルロ法による円周率計算と流体シミュレーション、大容量メモリーを使い切る題材として大規模言語モデル(LLM)の推論を選んでいる。話者は最終的に、数値計算用途には使えそうだが、専用機との比較やLLMの実用性には限界がある、という評価をしている。

8分で読めます

小さな筐体に詰め込まれた仕様

使用したのはMS-02 Ultraの3モデルのうち最上位の「MS-02 Ultra 285HX」である。ミニPCよりは大きいが、一般的なパソコンとしては小さい部類だと話者は紹介する。この大きさで、24コアのCPU、192GBのDDR5 ECCメモリー、デュアルの25GbE SFP28を搭載している。

正面には電源ボタンやUSB端子がある。USB-CはUSB4 V2が2ポートで、規格上は80Gbpsまで出る。USB4 over Ethernetに対応しているので、PC同士を対応するUSB-Cケーブルでつなげばネットワークも組める。このポートは画面出力も兼ねている。

背面にはRJ45が2口(2.5ギガと10ギガ)、HDMI、USB4、そして25ギガのSFP28が2口ある。SFP28はマザーボードではなく、ネットワーク拡張カードから出ている。

Intel E810とRDMA

SFP28のイーサネットコントローラーにはIntel E810が使われている。話者がこれを評価する理由は、RDMA(リモートダイレクトメモリーアクセス)が使えることだ。RDMAは、ネットワークでつないだパソコンのメモリー間で直接データをやり取りする技術で、OSやCPUを介さずに高速に通信できる。今回の3台クラスタでのシミュレーションではこのRDMAが効いてくる、と話者は述べる。MinisforumはMS-02 Ultraを最初からクラスタ計算機として使う想定で、RDMA対応のカードを選んだ可能性がある、とも推測している。

内部構造と拡張性

ケースはアルミ製で、話者は小さい筐体の放熱を考えたものだろうと見ている。継ぎ目が見当たらないため押し出し成形ではないかとも推測していた。内部は下から電源、ネットワークカード、CPU、PCIeの空きスロットの順に並ぶ。空きスロットはロープロファイルのグラフィックボードなら入る程度のサイズで、空間的な余裕は少ないため、何を付けるか迷うサイズ感だという。CPUクーラーには吸気側と排気側に1個ずつ、計2個のファンが付いている。

CPUはIntel Core Ultra 9 285HXで、Performanceコア8個とEfficientコア16個の合計24スレッドである。AI処理向けのNPUも搭載しているが、13TOPSでは正直物足りず、おまけ程度に考えた方がよいと話者は言う。画像分類や物体検出、小規模なLLMは動くものの、NPUを使うよりGPUを増設した方が満足度は高そうだという評価だ。

メモリーは表側のヒートシンクの下に2枚、裏側に2枚ある。裏側にはWi-Fiモジュールと元から内蔵されているSSDがあり、空いていた増設用スロットには、起動するOSを分けるためにキオクシアのSSDを追加した。さらにネットワークカード上にもM.2端子が2つあり、SSDは合計4枚まで取り付けられる。

3ノード72スレッドのクラスタ構成

1台あたりの計算資源はCPU1基、24スレッドで、これが1ノードになる。同じノードを3台つなぐと、合計72スレッドを走らせられるクラスタができる。並列計算ではノード間でデータの交換や同期が必要になるため、Open MPIとIntel MPIを使った。Intel MPIはRDMAを使えるので、RDMAの有無でどれだけ差が出るかも検証対象にした。

接続は基本的に25ギガのSFPをダイレクトアタッチケーブルでつなぐ方式だが、懸念点として、使ったスイッチの速度が10ギガしかない。計算にとって重要なのが帯域幅なのかレイテンシなのか、この時点では話者もまだ分かっていなかったため、ひとまずこのスイッチで進めることにしたという。

モンテカルロ法による円周率計算

並列計算の初歩として、モンテカルロ法で円周率を求めた。四角形の中にランダムに点を打ち、円の中に入った点の数から円周率を計算する方法である。話者によれば、1回ごとの計算が独立していて互いに影響せず、1ステップ前の計算を待つ時間も発生しないため、並列計算と相性がよい。スレッドが増えるほど短時間で終わるはずだ、という見立てで試行回数を2億回に設定した。

結果は次のとおりである。

  • 1スレッド:42.3秒
  • 2スレッド:22.8秒
  • 24スレッド(1ノードの最大):2.77秒
  • 48スレッド:1.41秒
  • 3ノード72スレッド:0.97秒

2スレッドでほぼ半分の時間になり、スレッドを増やすほど大幅に短くなった。ただし完全な反比例ではなく、話者はその理由を、計算以外にかかる時間があるためだと説明している。

OpenFOAMによる流体シミュレーション

次に、オープンソースで無料の流体シミュレーションソフトOpenFOAMを使った。話者の簡単な説明では、計算対象をメッシュで区切り、隣り合うメッシュ同士で足し算・引き算をして微分方程式を代数的に解いている。同じモデルでメッシュを細かくすれば細部まで計算でき、メッシュの大きさを変えずに範囲を広げれば大きなモデルを扱えるが、どちらの場合もメッシュ数が増え、計算時間も増える。こうした数値計算にも並列計算は有効だという。

しかし、モンテカルロ法のようにスレッドやノードを増やせば単純に速くなるわけではなかった。2次元のダムブレイクの計算でスレッド数を変えて比較したところ、1ノード内ではスレッド数が増えるほど完了までの時間が短くなる傾向があった。そこでノードをつないでさらにスレッドを増やせば短縮できると考えたが、逆に完了までの時間が大幅に延びてしまった。

検証を進めた結果、1スレッドが担当するメッシュ数が少なすぎると、計算そのものより他の処理にかかる時間の方が相対的に大きくなることが分かった。また、24スレッドを全部使い切らない方がシミュレーション時間が短くなることも分かった。後者について話者は、CPU、メモリー、ノード間のやり取りがごちゃごちゃしているのが原因ではないかと推測している。対策としては、1スレッドあたり数十万メッシュ程度を担当させれば計算時間の割合が大きくなり、並列計算をする意味が出てくるという。

Intel MPIとRDMAの効果

ここまではノード間の並列計算にOpen MPIを使ってきた。Intel E810がIntel MPIとRDMAに対応しているため、そちらに切り替えて比較したところ、Intel MPIの方がOpen MPIより17%時間を短縮できた。E810はOpen MPIでのRDMAにも対応しているようだが、最適化の設定が難しそうなため今回は断念し、機会があれば試したいと話者は述べている。

今回の知見として話者が挙げたのは、OpenFOAMのような計算ではネットワークの帯域幅(10ギガか25ギガか)はあまり重要ではなく、レイテンシの方がかなり効いているように感じる、という点である。これは話者の実感として語られている。

671BのDeepSeek-R1をCPUとRAMで動かす

最後に、大容量メモリーを生かす実験としてLLMの推論を試した。LLMの推論は本来GPUと高帯域幅メモリーで行うものだが、今回はあえてCPUとRAMで動かす。使用したのはDeepSeek-R1のQ4_K_M量子化モデルで、パラメータはフルサイズの671B(6710億)、モデルの容量だけで400GBある。これを3台のRAM上に展開した。

展開後のメモリー使用量は、1台目が192GB中184GB(96%)、2台目が170GB、3台目が169GBだった。話者はこれほどメモリーを使っているのは見たことがないと驚いている。空き容量をぎりぎりまで攻めたため、コンテキストサイズを大きくできず、2万程度に調整した。

チャットを始めると、1台目ではCPUが意外と使われ、イーサネットでも常時100Mbps程度の通信が発生していた。他の2台ではCPUでの処理は目立たないが、やはり100Mbps程度の通信が継続していた。途中で通信量が急に落ちる場面もあった。

最初に長文を話すよう頼んだが遅すぎて終わらず、400文字程度に変えてもなかなか終わらなかったため、「Hello」とだけ送った。これで応答が出てきたが、速度は毎秒1.1トークン程度だった。その後最初のプロンプトをやり直すと、先ほどは何かおかしかったようで、内部で考えている様子は見られたものの、ChatGPTなどと比べるとやはり遅い。話者は、大きなモデルが動くことにはロマンがあるが、動作速度を見ると現実に引き戻されると語り、大きくてもCPUで速く動くモデルはないのだろうか、と疑問を投げかけている。

話者の評価

数値計算については、コア数の多さと大容量RAMから、MS-02 Ultraは使えそうだと話者は結論づけた。一方で、本格的な数値計算用ワークステーションと比べると、CPUとメモリーをつなぐレーン数が少ないといった点で見劣りするという。LLMについてはやはりGPUの独壇場で、CPUでも動きはするが実用性は低いと感じた。ただし1台あたり192GBのメモリーがあるので、大きなモデルを載せられる点はメリットだとしている。