COVID-19ウィルスの解析を、家庭のコンピューターの演算能力を使って支援できる「Folding@home」がにわかに話題になっている。
こういう分散コンピューティングというものは、私は昔からやってるのである程度経験やノウハウがあるんだけれど、今回は私もFolding@homeに参加してみたので、ちょっとレポート。
先にちょっと書くけど、こういうのはモバイルノートPCとかでやると著しく寿命を縮める、最悪壊すところまであるから気をつけて。私が壊したことあるの。
PC故障のリスクについて
最近のPCは、「すべき処理がないとき・少ないときは、動作を遅くして無駄な電気を使わず、発熱をへらす」という機能がどんどん進歩している。
ネット見てるとかExcel触ってるとか動画を見てるとか、いわゆる普通の使い方をしてる場合、PCは一瞬頑張って処理してすぐサボりに入る、というようなことを繰り返している。
で、特にバッテリーを少しでも長持ちさせたいモバイルノートPCなんかだと、例えば「最大65Wを消費して発熱するCPUを使ってるけど、普通の使い方だと平均的に35Wくらいの発熱だから、冷却装置もそれくらいの性能の小型軽量なもの」といった設計になってる場合がある。
そういうPCで、Folding@homeのような、長時間に渡ってCPUやGPUを全力で稼働させるアプリを動かすと、冷却不足に陥る。
私は、2014年発売のNECのモバイルノートPC・Lavie Zを使ってたことがあるんだけれど、これで常時CPUを100%使いっぱなしになるような使い方をしていたら、壊れた。
CPU自体は動いてたけど、クーラーが異音を立てるようになり、底板が熱で劣化して波打って塗装もボロボロに剥がれた。バッテリーもどんどん劣化したのは、多分熱のせいもあったと思う。
デスクトップPCとか、でかいゲーミングノートPCなんかだったら、多分目に見えて異常が出るってことはないと思う。
しかしまあ、過酷な動作をさせることになるから、寿命は短くなる。
冷却ファンの回転は上がるし、ファンはわりと壊れやすい部品でもある。デスクトップPCのCPUファンなら交換も簡単だけど、グラフィックボードとかノートPCのファン汎用品でないものが多い。
といってもまあ、ある程度以上のマニア層は「壊れたら修理するなり買い換えるのも楽しみのひとつ」とか思ってるので、そういう連中は止める必要もなかろうと思う。私もその口。
なので、私は「みんなでやろうぜ」とまでは言いづらいかな。
そのPCが壊れても自分でどうにかできる、壊れるリスクも自分で推定して判断できる、という人であれば、どうせ過剰に性能のいいPCも持ってると思うから、どんどんやってくれれば。
実際やってみた感じ
で、私が動かしてる様子。
ワークユニットの大きさについて
こういう分散コンピューティングは、「巨大な計算量を要求する問題を、細かいユニットに分割し、ネットで配信して、それぞれのクライアントPCで処理し、ネットで結果を返答する」というものだ。
だから、手元に届く処理の単位がある。
うちの環境では、CPU (Core i3-6100)とGPU (RADEON RX470)とで、それぞれ別のユニットを受け取っている。
おそらく、ある程度クライアント側の処理性能を見てから送ってくるみたいで、大体8時間くらいやれば終わるユニットを受け取ってることが多いようだった。性能が低いPCに難しいユニットが届いて何十日も完了しない、なんてことは避けてるんだと思う。
(しかし相手を見るにも限度があるみたいで、AMD APU採用のタブレットPCでは性能が低すぎるせいか、グラフィックで24時間かかるユニットが届いていた)
処理した結果については、ユーザーごとに累積されていく(私のユーザーページはここで見れる)のだけど、最低一つはユニットを返送しないと反映されない。当たり前ではあるけど。
動作環境について
特に難しいことはしなくても、インストールしただけでRADEON RX470は認識されて、CPUとGPUが両方有効になって処理し始めた。
手元にGeForceがないのだが、多分自動認識すると思う。
AMDのAPU (A6 Micro-6500t)で動かすと、CPUと内蔵グラフィックがそれぞれ認識されて別々に処理をする。
IntelのCPU内蔵グラフィックは使えないみたい。うちの環境だと自動認識せず、手動追加も上手くできなかった。
やってみてわかったこと
サーバーが重いんだかなんだか、ユニットのDownloadに異様に長時間かかりがち。酷い時には数時間かかってたりする。
ユーザー急増したみたいだから、仕方ないんかね。
「Folding Power」をLight / Medium / Fullと選べるが、Fullだと両方動いて、MediumだとGPUだけになって、LightだとCPUだけになるっぽい。
CPUが稼働状態でも、うちの環境だと30%くらいの負荷にしかなってなかった。なので、他のことをやっていても多少レスポンスが落ちるかな、という程度で、遅くて使い物にならないってことはなかった。
稼働状態では、スリープに移行しようとしても、ディスプレイがオフになるだけになった。いつもどおりにスリープさせたいときは、ポーズする必要があった。
(5日21時ごろ追記):チーム237039の噂について
Folding@homeのTeam Numberを237039にすると、COVID-19関連のワークユニットが優先的に届く……という話を目にしたけれど、多分デマやな。
— 無謀庵の森 (@Mubouan) 2020年4月5日
237039はhttps://t.co/59rZksmE83っていう海外の技術ニュースサイトのチームで、特に届くワークユニットに変化はないやろうと思う。
https://t.co/59rZksmE83自体は普通のサイトだし、昔から日本語のPCニュースサイトから参照されたりもしてる。https://t.co/GV116ZYYLy
— 無謀庵の森 (@Mubouan) 2020年4月5日
Folding@homeへの参加を呼びかけるページで、登録手順に自分のチームに入る手順を含めて案内してるな。
多分誰かがどこかで誤解しただけで悪意もないだろうし、https://t.co/59rZksmE83のチームに入ったところで何の損害もないから、デマというか無害な間違いという方がええだろうか。
— 無謀庵の森 (@Mubouan) 2020年4月5日