分散コンピューティングプロジェクトの一つ、Folding@Homeで、ここのところ大騒ぎしている新型コロナウィルスの解析が始まったらしい。
この手のプロジェクトとしてはWorld Community Gridに参加したことがあるのだが、Folding@Homeは未経験。日本語での情報があまり多くなく、どちらかというとGPUを使った演算がメインという印象があり、高性能なグラフィックボードを持っていない自分にはちょっと手が出しづらかった。
それでも今回手を出そうと思ったのは、去年気胸の手術をしていて、呼吸器系の病気にちょっと神経質になっているから。治療のために少しでも何か役に立てるなら、と思った。
余っている古いデスクトップPC(とはいえ、Core i7-4770の4コア8スレッドなので性能的には十分)があるので、その上で動作させてみる。
参加方法
参加にあたってアカウントなどを登録する必要はなく、匿名ユーザとして参加できる。Folding@HomeのWebサイトから必要なソフトウェアをダウンロード、インストールすればよい。
WindowsとmacOS、Linux(Debian系とRHEL系)に対応している。今回はWindowsに入れていくことにする。
上記URLから、インストーラをダウンロード。

ダウンロードしたインストーラ実行して、画面の指示に従ってインストール。すべて「Next」で進めていけばよい。
最後の画面で、「Start Folding@Home」にチェックを入れて「Finish」を押す。

ファイアウォールの警告が出た場合は、「アクセスを許可する」で続行する。この辺は、使用しているセキュリティソフトによって表示が異なるかもしれない。

Folding@Homeの制御は、ブラウザ上から行えるようで、しばらく待つとこんな画面が出てくる。

特に理由がなければ、「Fold as Anonymous」を選択して、「Start Folding」を押す。これでワークユニットがダウンロードされ、解析が始まる。
以降、PCの起動時には自動的にFolding@Homeのソフトウェアが起動して、バックグラウンドで解析を続けてくれる。タスクバーの通知領域に以下のアイコンが出ていれば、正常に起動している状況。

各種設定
各種設定の変更方法も挙げておく。
Folding@Homeの設定は、インストール完了後に起動したWebの設定画面(Web Control)と、より詳細な設定を行う画面(Advanced Control)の二つがある。

タスクバーの通知領域にあるFolding@Homeのアイコンを右クリック → 「Web Control」または「Advanced Control」をクリックして表示できる。

火力調整
CPUのリソースをどの程度解析に割り振るかの設定を行う。Light/Medium/Full の3つから選べる。デフォルトはMediumだが、私は全開で動かしたいのでFullに設定。
また、「When」欄を「Only when idle」に変更すれば、PCの使用中は解析が停止する。何をもってアイドル状態と判断しているのかは未検証だが…。最近のCPUは性能を持て余しているのでよほど普段重い作業をしていなければ「While I’m working」のままでもいいと思う。どうしても負荷が気になるときは、「Stop Folding」ボタンで一時的に中断することもできるので。

プロキシ経由でのインターネット接続
一般のご家庭には関係ないが、社内ネットワーク等でインターネット接続にプロキシを使っている、特殊な環境で必要な設定。
解析のためのワークユニットをダウンロードしたり、解析結果をアップロードしたりするために当然インターネット接続(HTTP接続)が必要なわけだが、プロキシを経由する場合はWindows側の設定ではなく、独自の設定を使うようだ。
先ほど設定したWebの制御画面にはプロキシ設定は存在しないので、Advanced Controlの画面を開いて設定する。
左上の「Configure」をクリック。

「Proxy」タブを選び、「Enable proxy configuration」のチェックを付け、プロキシサーバのホスト名とポート番号を設定する。認証が必要な場合は下の欄にアカウント情報を設定する。

グラフィックスカード(GPU)を使う
Folding@Homeは、解析にCPUだけでなくGPUを使うこともできる。
初めのうちはCPUだけで実行させようと考えていたが、この手の演算はGPUのほうが格段に処理が早いというイメージがあり、後からグラフィックスカードを追加してみた。
今回使ったのは、NVIDIAのGeForce GT1030。ローエンドモデルなので性能的にはほとんど期待できないと思うが、まぁないよりはましだろう。
グラフィックスカードを取り付けただけでは解析にGPUを使ってくれないので、手動で設定を変更する必要がある。
Advanced Controlの画面を開いて、「Configure」をクリック

「Slots」タブを選び、「Add」ボタンをクリック

「GPU」欄のラジオボックスを選択したら、特に設定を変更せずに「OK」をクリック

元の画面で、「Save」をクリックして設定を保存すれば、Advanced Controlの画面にGPUが現れるはず。

しばらくすると、自動的にワークユニットがダウンロードされて、GPUでの解析が始まる。
解析中のGPUの使用率だが、Windowsのタスクマネージャー上では20%前後と表示される。だが、CPUID HWMonitor等のツールを使って確認すると、100%と表示されるのでおそらくフルロード状態なのだろうと思う。

GT1030では正直性能は不足気味。一つのワークユニットの解析にかかる時間は、CPUとそれほど違いがないレベル。もっとも、CPU用のワークユニットとは別物と思われるので単純な比較はできないけれど。
ちなみに、当初はもう少し性能が高い、GeForce GTX1650を使おうと思っていた。というか実際に購入して動かすところまで行ったのだが、負荷をかけるとファンの音が結構うるさくて常時稼働にはちょっと…。ということで、もともとメインマシンに積んでいたGT1030を拝借して、購入したGTX1650はメインマシンに取り付けることにしたという顛末があったりする。

エントリークラスとはいえ、ゲームもやらないのにこのグラボはいらなかったな…。
追記:新型コロナウィルスの解析ワークユニットが降ってきた
そんなこんなで、しばらくFolding@Homeを稼働させていると、GPU向けのワークユニットで新型コロナウィルスのプロジェクトが降ってきたことを確認。

コメント