新型コロナウイルス COVID-19 が猛威を振るい、外出が厳しい状況にあります。新しい三脚を入手したので風景写真を取りに行きたいところですがいつになるのかわかりません。
パンデミックの終息を早めるために家にいることが今できる事の一つだと思いますが、その他にできることはないだろうか?と調べているとこんな記事を発見しました。
【やじうまPC Watch】 「Rosetta@home」ならラズパイでも新型コロナの解析に協力可能
海外メディアのTom's Hardwareにて、Raspberry Piを使った新型コロナウイルスの解析プロジェクトRosetta@homeへの参加の仕方が紹介されている。
新型コロナウイルスの解析にPCやスマホのコンピューターリソースを活用するという内容です。
なるほど、そういった部分でパンデミック終息に貢献できるそうです。更に貢献できそうなコンピューターリソースは無いかと周囲を見渡してみるとNASがあることに気づきました。
私はQNAPのTS-453BeというNASを使用していますが、これはDockerを使えます。ここにRosetta@homeやFolding@homeの環境を作ることができればもっと貢献できそうです。
調べてみると既にそれら向けのDockerイメージが作成されていました。今回は非力なリソースでも貢献できそうなQNAPのTS-453Be上でRosetta@homeの環境を構築してみたいと思います。
Rosetta@home環境の構築
Rosetta@homeとFolding@homeのDocker設定についてはリンク先に詳しく書いてあります。こちらを元にRosetta@home環境を作成してみます。
COVID-19: How it’s affected us, and how you can help.
It’s certainly no secret that the SARS-CoV-2 pandemic has changed everyone’s lives in recent weeks. European countries are effectively closed, and people are more than ever being advised to self-isolate or work from home. It has put a tremendous amount of pressure on everyone.
QNAP上でのDockerの操作などについては以前にWordPress環境を構築したときと同様に、docker-composeの設定をまるっとコピーして使用するのが手っ取り早いです。ということで、Docker-hubの設定を元にした下記のdocker-composeの設定を使うこととしました。
boinc: image: linuxserver/boinc container_name: boinc environment: - PUID=1000 - PGID=1000 - TZ=Asia/Tokyo # オリジナルよりタイムゾーンを変えてみました。変えなくても影響ないかもしれません。 volumes: - /path/to/data:/config #optional ports: - 8089:8080 #ポート番号は他と重複しないように変更 devices: - /dev/dri:/dev/dri #optional restart: unless-stopped
linuxserver/boinc
The LinuxServer.io team brings you another container release featuring: regular and timely application updates easy user mappings (PGID, PUID) custom base image with s6 overlay weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth regular security updates
volumesの設定はなくても大丈夫だと思います。タイムゾーンは日本に合わせましたがオリジナルのEurope/Londonでも問題ないかもしれません。portsはご自身の環境に合わせて変更してください。
コンテナの構築が終わるとこのような感じになります。Rosetta@homeに追加前なのでCPU使用率は低いです。
Rosetta@homeに参加する
Rosetta@homeに参加するにはリンクボタンをクリックしてクライアント画面を開きます。
クライアント画面から参加するプロジェクトを選びます。Rosetta@homeを選択してNextをクリック。
メールアドレスとパスワードを設定します。捨てアドでもいいと思います。パスワードは6文字以上です。
参加後は、このような画面になり準備中になります。
この状態だとプログレスがわからないのでView->Advanced Viewに変更をおすすめいたします。
View->Advanced ViewでTransfersを見ると準備段階としていくつかのファイルをダウンロードしている様子がわかります。混み合っているのか180kbpsほどしか速度が出ず、実際のタスク実行まで約3時間ほどかかりました。
CPU使用率を調整する
ダウンロードが終わって実際にタスクが実行されるとTS-453BeのCPU使用率が100%になってしまいました。
ファンが勢いよく回り、このまま放置しておくと危険なので設定変更して調整が必要です。まだタスク実行前であれば、ダウンロード中の空き時間に設定しておけば安心かもしれません。
設定変更はOption->Computing preferencesより行います。
デフォルトでは100%割り当てられております。”Use at most of the CPUs”, “Use at most of the CPU time”の2つのパラメータがあります。
“Use at most of the CPUs”はCPUコアをどの位の割合で使うか、の設定です。同時実行タスク数に影響するようで、例えば4つタスクがある場合、75%に設定すると3つ同時実行までに制限されました。お使いのNASによって動作は変わると思います。
“Use at most of the CPU time”はその名の通り、実行時間の調整になります。50%に設定するとBOINCアプリケーションのCPU使用率も約半分になります。
私の環境では、”Use at most 75% of the CPUs”, “Use at most 50% of the CPU time”に設定してみました。
設定変更前後のCPU使用率です。タスクの実行終了まで20時間はかかりそうです。
あとは、放置しておくと自動的に新規タスクを取り込んで実行していくようです。少しでも役に立てるといいのですが。
アカウントの編集、チームの参加など
メールアドレスやパスワードの変更、チームの参加などはWeb上から行うことができます。Rosetta@homeのホームページからログインすると変更可能です。日本語化されているのでBOINCクライアントの画面よりこちらのほうがわかりやすいと思います。これらの作業は必須ではないのでお好みで。
番外:QNAP CLUBのBOINCパッケージ
あまり詳しくないのですがQNAP CLUBという非公式なレポジトリがありQNAP向けアプリをインストールできるようなのですが、そこにBOINCアプリがあります。
試しにインストールしてみたのですがどのように使えばよいのかわからず。QNAPユーザはもしかしたらそちらのほうがリソース使用効率が良いのかもしれません。なにかわかったら追記するかもしれません。
追記
QNAP CLUBはなくなりMyQNAPというサイトができたようです。ですが残念ながらBOINCパッケージは無いようです。