BOINC
BOINC 官方網站:「利用您的計算機(Windows、Mac 以及 Linux)的空閒的時間,幫助尋找治療疾病的方法、研究全球變暖、發現脈衝星…… 進行各種各樣的科學研究。這一切簡單且安全!」
維基百科:「伯克利開放式網絡計算平台(Berkeley Open Infrastructure for Network Computing,BOINC)是一個用於志願計算和網格計算的非商業的中間件系統。開發 BOINC 的最初目的是支援 SETI@home 項目,而後來它發展成為一個支持多種項目的強大的分布式計算平台,這些項目的研究領域涵蓋了數學、醫學、分子生物學、氣候學以及天體物理學等等。BOINC 力圖讓研究人員享用到全世界數以億計的個人電腦的強大計算能力。」
安裝[編輯 | 編輯原始碼]
官方倉庫提供了 boinc包 和 boinc-nox包 軟件包,使用安裝其一即可。後者不依賴 Xorg,適用於沒有物理控制台的服務器。
兩個軟件包都提供了系統服務 boinc-client.service
,可以使用 systemctl
管理。詳情參見 Systemd (簡體中文)#使用單元。
注意從 7.10.3 新版本開始,原先的服務名稱由 boinc.service
更改為新的 boinc-client.service
。
使用[編輯 | 編輯原始碼]
密碼文件配置[編輯 | 編輯原始碼]
BOINC 服務會在首次啟動後自動創建密碼文件 /var/lib/boinc/gui_rpc_auth.cfg
,任何管理器都需要使用該密碼來鏈接 BOINC 服務。如果從菜單圖標啟動 BOINC Manager,它會自動讀取該文件。但該文件默認只有用戶 boinc 可讀,為了連接 BOINC 服務,你需要先將當前用戶加入 boinc 組,並修改密碼文件的訪問權限:
$ gpasswd -a <用户名> boinc $ sudo chmod g+r /var/lib/boinc/gui_rpc_auth.cfg
重新登錄即可生效。
如果你經常使用命令行操作,或需要從終端啟動 BOINC Manager,則可將密碼文件連接至用戶目錄,這樣 BOINC Manager 或 boinccmd 就能自動連接 BOINC 服務:
$ cd ~/ $ ln -s /var/lib/boinc/gui_rpc_auth.cfg gui_rpc_auth.cfg
若要手動設置該密碼(甚至清空),只需修改 /var/lib/boinc/gui_rpc_auth.cfg
文件,並重啟 BOINC 服務即可。
圖形界面[編輯 | 編輯原始碼]
運行 boincmgr
命令啟動圖形界面的 BOINC Manager:
$ boincmgr
首次啟動時,BOINC Manager 會指引你加入項目。注意,有些項目可以通過 BOINC Manager 直接創建項目,而有些則需要先在其網頁上註冊。如果存儲空間、計算能力和時間等條件允許,可以通過菜單項工具 / 增加項目加入多個項目。
如果 BOINC Manager 沒有像上面那樣指引你加入項目,那麼可能是連接 BOINC 服務失敗了。點擊菜單項高級 / 選擇計算機,輸入計算機名(本機使用 localhost
即可),然後輸入 /var/lib/boinc/gui_rpc_auth.cfg
中的密碼即可。(如果不想每次都這樣做,請確保按照上面的步驟正確配置 gui_rpc_auth.cfg 。)
使用 GPU 的項目[編輯 | 編輯原始碼]
要使用 GPU 計算,需要安裝閉源的 NVIDIA 和 AMD 驅動。對於 ATI/AMD 顯卡,還需要安裝 AUR 軟件包 libopenclAUR[損壞的鏈接:package not found]。NVIDIA 用戶只需安裝 [extra] 中的 opencl-nvidia包 即可。
此外還需要將 boinc 用戶加入 video 組:
# gpasswd -a boinc video
boinc 用戶還需要有訪問你的 X session 的權限:
xhost local:boinc
若要避免每次都輸入,可將上述命令加入啟動腳本。
命令行界面[編輯 | 編輯原始碼]
對於命令行操作,可參照 boinccmd
和 boinc
命令的幫助及 man 手冊。boinccmd
是 BOINC 自帶的命令行界面工具。
日誌文件[編輯 | 編輯原始碼]
BOINC 的日誌文件存放在 /var/lib/boinc/
中:
/var/lib/boinc/stderrdae.txt /var/lib/boinc/stdoutdae.txt
選擇項目時需要考慮的因素[編輯 | 編輯原始碼]
不同項目的硬件要求(CPU、磁盤空間等)有所差異,每個任務的計算時間也不盡相同。如果不能在上報期限前完成任務,服務器會判定任務過期,並把他交給其他計算機。請根據硬件條件選擇合適的項目,避免這樣的問題發生。
此外,項目的研究方向和公開度也是需要考慮的因素。
64 位系統[編輯 | 編輯原始碼]
某些項目只提供32位計算程序和圖形顯示程序,因此你需要從 [multilib] 安裝一些基本的庫。
- 運行計算程序需要通常需要(以 Climateprediction 項目為例):
- lib32-glibc包, lib32-glib2包
- 顯示圖形需要(如 WCG 的幾個子項目、Climateprediction):
- lib32-pango包, lib32-libxdamage包, lib32-libxi包, lib32-mesa-libglAUR[損壞的鏈接:replaced by lib32-mesa包], lib32-libjpeg6AUR[損壞的鏈接:package not found] (AUR), lib32-libxmu包
疑難解答[編輯 | 編輯原始碼]
GPU missing[編輯 | 編輯原始碼]
如果出現這樣的錯誤:
GPU Missing
且 GPU 計算任務無法啟動,則應嘗試重啟 boinc-client.service
服務。
這樣的錯誤通常是因為 BOINC 服務先於 X 啟動。
筆記本過熱,續航時間縮短[編輯 | 編輯原始碼]
如果在筆記本上運行 BOINC,且 CPU 頻率管理策略為 ondemand(默認即是),CPU 頻率會始終保持在最大值,導致 CPU 過熱、續航時間縮短。解決方法是要求內核調整 CPU 頻率時忽略 BOINC 任務的影響:
# echo 1 >/sys/devices/system/cpu/cpufreq/ondemand/ignore_nice_load
創建以下 tmpfiles.d 配置,可實現開機自動設置:
/etc/tmpfiles.d/ondemand-ignore-nice.conf
w /sys/devices/system/cpu/cpufreq/ondemand/ignore_nice_load - - - - 1
無法下載 World Community Grid 任務[編輯 | 編輯原始碼]
由於 openssl 的問題,一些用戶無法下載 World Community Grid 項目的任務。要解決這一問題,需要對該軟件包進行一些修改,然後重新編譯。
首先,獲取 openssl 的 PKGBUILD,以及打包其他所需文件:
$ git clone https://github.com/archlinux/svntogit-packages.git --single-branch --branch packages/openssl
如果你安裝了 yaourt,也可以使用如下命令:
$ yaourt -G openssl
執行完第一個命令後,你會看到一個 ./packages/trunk/ 目錄,其中有包括 PKGBUILD 在內的若干文件。該 PKGBUILD 需要修改,正確的可以從這裡下載。
然後,創建軟件軟件包:
$ makepkg
完成後,會出現一個擴展名為 .pkg.tar.xz 的軟件包,安裝並重啟 BOINC 服務即可:
# pacman -U openssl-*.pkg.tar.xz # systemctl restart boinc
大功告成。如果還有問題,請參見原討論貼,發帖請求幫助。
cc_config.xml 相關配置[編輯 | 編輯原始碼]
cc_config.xml 為BOINC管理器的一個高級配置腳本。通過增加不同的參數,可以達到許多意想不到的效果。
將編輯好的文件複製到 /var/lib/boinc 後,還需更改文件為640權限。