BOINC

出自 Arch Linux 中文维基

本文內容或本節內容已經過期。

原因: 請提供模板的第一個位置參數以概括原因。 (在Talk:BOINC討論)

本文或本節需要翻譯。要貢獻翻譯,請訪問簡體中文翻譯團隊

附註: 請完成更新後的翻譯。(在 Talk:BOINC# 中討論)

BOINC 官方網站:「利用您的計算機(Windows、Mac 以及 Linux)的空閒的時間,幫助尋找治療疾病的方法、研究全球變暖、發現脈衝星…… 進行各種各樣的科學研究。這一切簡單且安全!」

維基百科:「伯克利開放式網絡計算平台(Berkeley Open Infrastructure for Network Computing,BOINC)是一個用於志願計算和網格計算的非商業的中間件系統。開發 BOINC 的最初目的是支援 SETI@home 項目,而後來它發展成為一個支持多種項目的強大的分佈式計算平台,這些項目的研究領域涵蓋了數學、醫學、分子生物學、氣候學以及天體物理學等等。BOINC 力圖讓研究人員享用到全世界數以億計的個人電腦的強大計算能力。」

安裝[編輯 | 編輯原始碼]

官方倉庫 提供了 boincboinc-nox 軟件包,使用 安裝 其一即可。後者不依賴 Xorg,適用於沒有物理控制台的伺服器。

兩個軟件包都提供了系統服務 boinc-client.service,可以使用 systemctl 管理。詳情參見 Systemd (簡體中文)#使用單元

注意從 7.10.3 新版本開始,原先的服務名稱由 boinc.service 更改為新的 boinc-client.service

使用[編輯 | 編輯原始碼]

注意: 以下內容僅僅適用於:1、Arch 官方軟件包提供的 BOINC;2、從 systemd 服務正確啟動。如要通過 boinc 命令啟動管理,請自行查閱相關文檔。

密碼文件配置[編輯 | 編輯原始碼]

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 計算,需要安裝閉源的 NVIDIAAMD 驅動。對於 ATI/AMD 顯卡,還需要安裝 AUR 軟件包 libopenclAUR[損壞的連結:package not found]。NVIDIA 用戶只需安裝 [extra] 中的 opencl-nvidia 即可。

此外還需要將 boinc 用戶加入 video 組:

# gpasswd -a boinc video

boinc 用戶還需要有訪問你的 X session 的權限:

xhost local:boinc

若要避免每次都輸入,可將上述命令加入啟動腳本。

注意: 對於使用雙顯卡筆記本電腦的用戶,如果使用某些軟件(如 bumblebee/bbswitch)禁用了高性能顯卡的驅動,在使用 GPU 計算時,可能遇到一些麻煩(找不到顯卡、計算錯誤等等)。如果要使用 GPU 計算,原則上你必須在 BOINC 運行時確保顯卡開啟,以及加載正確的驅動模塊。當前似乎還沒有什麼好的解決方案。 —— 譯者注

命令行界面[編輯 | 編輯原始碼]

對於命令行操作,可參照 boinccmdboinc 命令的幫助及 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權限。

相關資源[編輯 | 編輯原始碼]