[雑多] Folding@Homeで新型コロナウイルスの解析に参加する

Folding@Home(以下FAH)はタンパク質の構造解析を分散コンピューティングで行うプロジェクトです分。散コンピューティングというと難しそうですが、要は元気玉みたいなもので、みんなでPCの性能を少しずつ出し合って大量の計算を行うものです。専用のソフトウェアをインストールするだけで自宅のマシンを解析に参加させることができます。10年くらい前にPS3上でも実行できるということで話題になりました。現在新型コロナウイルスの解析プロジェクトがFAHで進んでおり、自宅においてある余剰リソースを参加させてみました。

ソフトウェアのインストール

クライアントソフトウェアはFAHの公式ページからダウンロードできます。Windows/Mac/Linuxで動作させることができるので、自分が使っているOSに合わせてダウンロードしてください。ダウンロードしたらインストールです。英語ですが特にやることはないのでボタンを押していけばインストールが終わります。

なお、今回はMac/Linux(Ubuntu)を中心に説明します。スクリーンショットはこれらのOS上のものですが、Windows上でもほぼ同じです。

インストールが終わるとブラウザが立ち上がります。あとは放置しておけばそのうち計算が始まります。設定項目は以下のような感じ。「FAHControl」というソフトウェアを使うとでより詳細な設定ができます。

1. ユーザ名

インストール時に匿名ではなくユーザ登録を行うと表示されます。また、チームに参加している場合はユーザ名の下にチームIDが表示されます。

2. 対象とするプロジェクト

参加したいプロジェクトの種類を選びます。新型コロナウイルスであればデフォルトの「Any disease」を選んでください。新型コロナウイルスに関連するプロジェクトが優先して選ばれます。ただし、新型コロナウイルスに関連するプロジェクトのみを選んで参加することはできないようです。

3. スコア

FAHのゲーム要素です。解析量に応じて一定のポイントが付与され、世界中またはチーム内でポイントの多さを競うことができます。反映にはかなり時間がかかるみたいなので、スコアが増えてなくても焦らないように。

4. システム稼働状況

解析の進捗状況です。100%になると現在行っている解析が終了します。ハードウェアの性能次第で時間は前後します。CPUと記載されている部分は、解析に割り当てられているCPUスレッド数です。

5. リソース割り当て

CPU/GPUリソースの割当量です。3段階から選べますがあんまり意味はなさそう。Lightに寄せるほど割り当てられるスレッド数が減り、Fullにすると全てのスレッドが解析に利用されます。

6. 稼働時間

いつ解析を行うかの設定です。「When I'm working」は常に解析を行うモードです。「Only when idle」はPCがアイドル中の場合にのみ解析を行うモードです。

7. 解析開始/停止

解析の開始/終了ボタンです。「Stop Folding」を押すとダイアログが表示されます。「Finish up, then stop」を押すと解析終了後に次の解析に移らずに解析を終了します(が、たまに止まらずに次の解析に進むことがあります。謎。「Stop now」は解析の一時停止です。

8. 現在参加しているプロジェクトの詳細

処理しているプロジェクトの詳細です。スクリーンショットにある「14572」は新型コロナウイルスの治療薬に関する計算のようです。

FAHControl

読んで字の如くFAHClientを制御するソフトウェアです。複数のクライアントの処理状況や設定などをこのツールで行います。基本的な操作はWebControlからでも可能です。WebControlはブラウザで(IPアドレス):7396で接続できます。繋がらないときはリモートアクセス周りの設定を見直しましょう。

Ubuntu(CLI)

LinuxにもGUI版のFAHが存在しますが、余剰リソースがサーバなのでCUIしか使えません。そこでCUI版のFAHを入れたのですが情報があまり多くはなくちょっと苦戦しました。

インストール

インストール自体は簡単で、ここらへんの情報を参考にwgetとかでdebを落としてきてdpkgでインストールするだけです。解析するだけなのでFAHClientだけ入れればOK。他は不要です。

$ wget https://download.foldingathome.org/releases/public/release/fahclient/debian-stable-64bit/v7.5/fahclient_7.5.1_amd64.deb
$ sudo dpkg -i --force-depends fahclient_7.5.1_amd64.deb

サービスの起動と終了

以下のコマンドで起動/終了です。なお、FAHClientのインストール先は/var/lib/fahclientです。この辺を参考に

# 起動
sudo /etc/init.d/FAHClient start

# 終了
sudo /etc/init.d/FAHClient stop

# 再起動
sudo /etc/init.d/FAHClient restart

たまに起動に失敗することがあるので、startに失敗したら成功するまでrestartしましょう。またプロジェクトがダウンロードされない場合もrestartで降ってくることがあるみたいです。

設定

GUI版ではFAHControlというソフトウェアを使って設定を変更することができるのですが、CUIで簡単に設定する方法はないみたいです。リモートでFAHControlから設定すると楽なので、とりあえずここではリモート接続可能になるところまで説明します。

設定ファイルは/etc/fahclient/config.xmlです。単純なXMLですが何を設定すればいいのか説明がないので苦戦しました。結論としては以下の項目を埋めればリモートで繋がるようになります。

<config>
  <!-- GPUを無効化 -->
  <gpu v='false'/>

  <!-- FAHControlを受け付けるIPアドレス(たぶん) -->
  <allow v='127.0.0.1 192.168.1.7'/>

  <!-- パスワード無し接続を受け付けるIPアドレス -->
  <command-allow-no-pass v='127.0.0.1 192.168.1.7'/>

  <!-- ユーザ情報 -->
  <passkey v='(アカウント登録時にパスコードを発行した人はここに設定)'/>
  <user v='(アカウント名)'/>

  <!-- WebControlを受け付けるIPアドレス(たぶん) -->
  <web-allow v='127.0.0.1 192.168.1.7'/>

  <!-- スロット(デフォルトのままでOK) -->
  <slot id='0' type='CPU'/>
</config>

とりあえずallowcommand-allow-no-passweb-allowに接続するIPアドレスを書けばOKです。あとはGUIなマシンからFAHControlを使って設定を変更しましょう。

自分のマシンでやりましょう

サーバは自宅のものを利用しています。共有サーバやVPSなどでCPUを専有するのは非常に迷惑なのでやめましょう。

動かないときは

解析が始まらない

新型コロナウイルスの解析プロジェクトに優先的にリソースが割かれるようになっているため、たくさんの人が同時に接続している状態です。そのため、なかなか解析に必要なデータが降ってこないことがあります。その場合は、以下のようなログが出ると思います。

11:47:18:WU01:FS00:Connecting to 65.254.110.245:8080
11:47:18:WARNING:WU01:FS00:Failed to get assignment from '65.254.110.245:8080': No WUs available for this configuration

待っていればそのうち始まります。

クライアントにつながらない

FAHClientとFAHControl、WebControlはTCPを使ってプロセス間通信を行っています。以下の点が正しく設定されているか確認してください。

  • 接続許可IPアドレスが正しく設定されているか確認してください。「Configure」→「Remote Access」→「Console client remote access」で受け付けるIPを指定できます。同じマシン内であれば「127.0.0.1」が設定されていればOK。複数設定する場合はスペースで区切って入力します。
  • パスワードなし接続に接続元IPが設定されているか確認してください。「Configure」→「Remote Access」→「Passwordless IP Address Restriction」の項目に同じくIPアドレスを設定してください。
  • ファイアウォールの設定を確認してください。FAHClientをリモートアクセスで操作する場合、FAHControlなら「36330」、Web Controlなら「7396」がデフォルトのポートです。これらのポートの接続を許可してください。

GPUが検出されない

FAHはGPUを使って計算を行ってくれますが、現在Windows以外でGPUを使うことはできないようです。

最後に

世界中で猛威を奮っているコロナウイルスですが、みんなで力を合わせていち早くこの状況を打開できるよう(電気代には気をつけて)がんばっていきましょう!

0 件のコメント :

コメントを投稿