メインサーバにFolding@homeを導入して新型コロナウィルスなどの解析に協力してみた

さすがに新型コロナウィルスの影響がしゃれになっていない状態になってきています。自分の身にも転職や請負の仕事などで降りかかっていますし…。ということでちょっとある動画でやっていた、いわゆる余っているPCの能力を組み合わせていろいろなものを調べる系(分散コンピューティング)のプロジェクト、今回は特に新型コロナウィルスなどの構造解析をやっているFolding@homeを導入してみたいと思います。

 

今回はLinux版(Redhat系)でやってみる

メインマシンに入れるとファンの音の問題や消費電力の問題も大きそうですので、サーバー機に入れてやってみようと思います。さすがに世界的なプロジェクトだけあってWin版以外にもmac版、Linux版(Debian系、Redhat系)などがありますので自分に適したものを導入すればOKです。手順としてはこんな感じ。

 

1. ホームページ(https://foldingathome.org/)から上のメニューより「Start folding」をクリックする

2.ダウンロードページの中程にある「alternative downloads」のリンクをクリックする

3.各OSにインストールするときのインストールプログラムおよびパッケージへのリンクがあるので必要なファイルをダウンロードする

このとき、GUIからの監視や設定プログラムがなくてもよい場合はfahclientのみでOK。監視プログラムを入れる場合は特に別PCから監視する場合はいくつかのポートを開いたりするなどファイアウォールの処理が必要になるので注意。

4.root権限を使ってパッケージをインストールする。

DNFが使えるFedora系ならば(3/29現在だと)

$ sudo dnf install fahclient-7.5.1-1.x86_64.rpm

でOKです。openssl系のパッケージが必要になるのでそこだけ注意。

5.インストールが完了すると勝手に動作を開始するので一度停止させる

いくつか設定をちゃんとする必要があるので動作を停止させましょう。本当をいうならreloadができるはずなので止めなくてもよいかもしれませんが、初期設定の場合は一度完全に止めた方が確実でしょう。

$ sudo /etc/init.d/FAHClient stop

6. 必要な設定を作成する

初期設定だけならFAHClientからファイルを作ることができますのでそれを使いましょう。

$ sudo FAHClient --configure
User name [Anonymous]:(自分を示すユーザ名を入力する。空欄ならAnonymous)
Team number [0]:(参加したいチームの番号を入力する)
Passkey:(パスキーを入力する)
Enable SMP [true]: (複数CPUへの分散を行うときはtrueを指定する)
Enable GPU [true]: (GPU[OpenCLやCUDA]を使用するときはtrueを指定する。認識されていなければ動作しない)
Name of configuration file [config.xml]:(空欄でOK)

7. /etc/fahclient/config.xmlを編集してCPU使用率に関する指定をする。

エディタで設定ファイルを開いてもう少し細かく設定します。特にCPUやGPUの使用率に関してもっと使ってほしい場合にはこの設定項目を変更します。

 <power v='light'/> (ここをmediamやfullにすると使用率が上がる)

8. サービスを再起動する

$ sudo /etc/init.d/FAHClient start

 

実行に必要になるものは勝手にダウンロードされるので後は放置でOK

解析させたいタンパク質のデータもそうですが、対象のPCにあう解析プログラムがダウンロードされるので、それが実行されるまでしばらくかかるようです。実行されるとCPU使用率が大幅に上がるはずです。なお、実行で使われるデータ、プログラムおよびログは/var/lib/fahclient以下にありますので解析ログを見てみたい人は直接見てみるとよいと思います。そんなにこまめに見るものでもないと思いますが。

 

昔はSETI@homeがあったな…

こちらは「宇宙から来た電波などを解析して宇宙人の痕跡を探す」でしたが、すでに終了しています。こういう分散コンピューティングの先駆けともなっているものを知っているのでこういうときに協力してみようという気になるわけですね・・・。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

この記事のトラックバック用URL