前回、MacBook Air M1からUbuntuミニPCサーバー化するまでの話を書いた。今回はその続きで、司令塔にしてたミニPCの処理能力が足りなくなって、放置してたゲーミングPCを引っ張り出すまでの話。

Claude Codeの仕様変更で、処理が一気に重くなった

その後、Claude Codeの仕様が変わって、Ultracode(複数のタスクをまとめて処理する機能)がほぼ確実にサブエージェント(並行して動く子AI)を起動するようになった。1つの指示に対して裏で何体ものAIが同時に動くイメージで、便利になった分、マシンへの負荷も一気に増えた。

N150は実質2スレッドしか使えない

ここで壁になったのが、司令塔にしてたN150ミニPCのスレッド数。N150自体は4スレッドあるチップなんだけど、Claudeのエージェント動作はどうやらスレッド数−2でしか動かないらしく、4スレッドのN150だと実質使えるのは2スレッド分。

サブエージェントが同時に何体も動くと、どうしても作業時間が伸びてしまう。

『ブラッディ・マンデイ』で知った「分散コンピューティング」

これを解決する策として考えたのが、分散コンピューティング。1台に処理を集中させず、複数の機体に処理を分けて振る、という発想。実はこれ、中学生の頃に読んでた『ブラッディ・マンデイ』で知った知識の応用でもある。

放置してたゲーミングPCを投入

1年前にゲーム用に買ったRyzenのゲーミングPC(前に書いた3台構成のうちの1台)があった。電力を食うわりに結局ゲームでしか使わなくなって、しばらく起動すらしてなかったマシンだ。

新しいMac miniを買うことも一瞬考えたけど、今あるものを最大限使い切る方を優先することにした。

WindowsにUbuntuを乗せて、workerにする

やったことは、SSHでそのゲーミングPC(Windows)にアクセスして、Windowsの中でUbuntuを動かし、司令塔と同じネットワーク上のworker(処理を手伝う機体)として組み込むこと。かなりマニアックなことをやってる自覚はあるけど、これで処理を分散できるようになった。

まとめ

AI側の仕様が進化するたびに、こっちのインフラも追いつかせる必要が出てくる。電力食いで放置してたゲーミングPCが、こんな形で復活するとは思っていなかった。