貢獻多餘算力對抗 - COVID-19:Folding@HOME
利用多餘的電腦資源,加入 Folding@HOME 專案,一起對抗 COVID-19。
我有一台閒置的 Ubuntu server,我想我可以利用它閒置的時間來幫忙對抗 COVID-19。
2020 年 2 月 27 日,Folding@home 發布新的計算程式以研究 2019-nCoV 病毒。分散式運算項目 Folding@home 宣布加入新冠病毒 2019-nCoV 的研究以幫助研究人員開發出治療方法。Folding@home 指出:2019-nCoV 是 SARS 冠狀病毒(SARS-CoV)的「近親」,並且以類似的方式起作用。為了瞭解這些訊息,需要我們對 2019-nCoV 峰值蛋白的結構進行建模。我們需要構建可以實現此目標的計算模型,但它需要大量的運算能力。
按照官方的說明文件安裝,由於我沒有 GUI 介面,所以我只要下載其中一個 fahclient
就可以了。
$ wget https://download.foldingathome.org/releases/public/release/fahclient/debian-stable-64bit/v7.6/fahclient_7.6.13_amd64.deb
$ sudo dpkg -i --force-depends fahclient_7.6.13_amd64.deb
安裝的同時,安裝程式會問你一些資訊,帳號跟 team id 之類的,順利的話,裝好就已經啟動,之後再透過 /etc/init.d/FAHClient
來控制。
ghill@ghill:~$ sudo /etc/init.d/FAHClient --help
Syntax: /etc/init.d/FAHClient [OPTIONS] <COMMAND> [-- [OPTIONS]]
COMMANDS:
start Start client
stop Stop client
restart Full stop then restart client
reload Respawn client process
status Print client status
log Tail the client log
OPTIONS:
-u <user> Run as this user.
-h <home> Run in this directory.
-v Be verbose. Show WS output
Any options after a '--' will be passed on to the client.
不過我的裝好就出現了奇怪的錯誤。
● FAHClient.service - LSB: Folding@home Client
Loaded: loaded (/etc/init.d/FAHClient; generated)
Active: failed (Result: exit-code) since Wed 2020-05-06 11:10:00 CST; 12ms ago
Docs: man:systemd-sysv-generator(8)
Process: 21587 ExecStart=/etc/init.d/FAHClient start (code=exited, status=1/FAILURE)
Tasks: 4 (limit: 4647)
CGroup: /system.slice/FAHClient.service
├─21596 /usr/bin/FAHClient /etc/fahclient/config.xml --run-as fahclient --pid-file=/var/run/fahclient.pid --daemon
└─21598 /usr/bin/FAHClient --child /etc/fahclient/config.xml --run-as fahclient --pid-file=/var/run/fahclient.pid --daemon
May 06 11:10:00 ghill systemd[1]: Starting LSB: Folding@home Client...
May 06 11:10:00 ghill FAHClient[21587]: Starting fahclient ... FAIL
May 06 11:10:00 ghill systemd[1]: FAHClient.service: Control process exited, code=exited status=1
May 06 11:10:00 ghill systemd[1]: FAHClient.service: Failed with result 'exit-code'.
May 06 11:10:00 ghill systemd[1]: Failed to start LSB: Folding@home Client.
The Folding@home client is now installed
You can access the Web interface by going to:
https://client.foldingathome.org/
in a browser on this computer.
For information about configuring the Folding@home client for
remote access please see the comments in:
/etc/fahclient/config.xml
為此我重裝了幾次,後來網路上找到答案 [1],需要修改 /etc/init.d/FAHClient
:
wait_for_log_change() {
if [ "$2" != "" ]; then
pid=$2
else
pid=$(get_pid)
fi
+ while ! is_running ; do
+ sleep 0.1
+ done
while [ "$(log_status)" == "$1" ]; do
if is_running ; then
sleep 1
else
return 1
fi
done
return 0
}
F@H 可以跟 Boinc 一樣,用遠端的電腦監看使用的狀態。在 /etc/fahclient/config.xml
加入:
<allow v='127.0.0.1 192.168.1.0/24'/>
<web-allow v='127.0.0.1 192.168.1.0/24'/>
<password v='xxxx'/>
<allow>
跟 <web-allow>
指的是允許連線的 ip 位址 (範圍),最後一個 <password>
是連線的密碼。
接著在 Windows 方面,找到 FAHControl
這個程式,加入要觀察的 client 端。
這樣就完成了。如果一直連線無法成功的話,請檢查一下防火牆的設定。Windows 下可以檢查防火牆是不是把 FAHControl 檔掉了?Server 端用 ufw
檢查看看是否有 allow port 36330
的存取。
如果你用的 Web Control 會有一直重載的問題,請參考 F@H Web Control 一直重載?