arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
194 lines (113 loc) • 10.4 kB
Markdown
[BOINC 官方网站](http://boinc.berkeley.edu/):“利用您的计算机(Windows、Mac 以及 Linux)的空闲的时间,帮助寻找治疗疾病的方法、研究全球变暖、发现脉冲星…… 进行各种各样的科学研究。这一切简单且安全!”
[维基百科](https://en.wikipedia.org/wiki/BOINC "wikipedia:BOINC"):“伯克利开放式网络计算平台(Berkeley Open Infrastructure for Network Computing,BOINC)是一个用于志愿计算和网格计算的非商业的中间件系统。开发 BOINC 的最初目的是支援 SETI@home 项目,而后来它发展成为一个支持多种项目的强大的分布式计算平台,这些项目的研究领域涵盖了数学、医学、分子生物学、气候学以及天体物理学等等。BOINC 力图让研究人员享用到全世界数以亿计的个人电脑的强大计算能力。”
## Contents
* [1 安装](#.E5.AE.89.E8.A3.85)
* [2 使用](#.E4.BD.BF.E7.94.A8)
* [2.1 密码文件配置](#.E5.AF.86.E7.A0.81.E6.96.87.E4.BB.B6.E9.85.8D.E7.BD.AE)
* [2.2 图形界面](#.E5.9B.BE.E5.BD.A2.E7.95.8C.E9.9D.A2)
* [2.2.1 使用 GPU 的项目](#.E4.BD.BF.E7.94.A8_GPU_.E7.9A.84.E9.A1.B9.E7.9B.AE)
* [2.3 命令行界面](#.E5.91.BD.E4.BB.A4.E8.A1.8C.E7.95.8C.E9.9D.A2)
* [3 日志文件](#.E6.97.A5.E5.BF.97.E6.96.87.E4.BB.B6)
* [4 选择项目时需要考虑的因素](#.E9.80.89.E6.8B.A9.E9.A1.B9.E7.9B.AE.E6.97.B6.E9.9C.80.E8.A6.81.E8.80.83.E8.99.91.E7.9A.84.E5.9B.A0.E7.B4.A0)
* [4.1 64 位系统](#64_.E4.BD.8D.E7.B3.BB.E7.BB.9F)
* [5 疑难解答](#.E7.96.91.E9.9A.BE.E8.A7.A3.E7.AD.94)
* [5.1 GPU missing](#GPU_missing)
* [5.2 笔记本过热,续航时间缩短](#.E7.AC.94.E8.AE.B0.E6.9C.AC.E8.BF.87.E7.83.AD.EF.BC.8C.E7.BB.AD.E8.88.AA.E6.97.B6.E9.97.B4.E7.BC.A9.E7.9F.AD)
* [5.3 无法下载 World Community Grid 任务](#.E6.97.A0.E6.B3.95.E4.B8.8B.E8.BD.BD_World_Community_Grid_.E4.BB.BB.E5.8A.A1)
* [5.4 cc_config.xml 相关配置](#cc_config.xml_.E7.9B.B8.E5.85.B3.E9.85.8D.E7.BD.AE)
* [6 相关资源](#.E7.9B.B8.E5.85.B3.E8.B5.84.E6.BA.90)
## 安装
[官方仓库](/index.php/Official_repositories_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Official repositories (简体中文)") 提供了 [boinc](https://www.archlinux.org/packages/?name=boinc) 和 [boinc-nox](https://www.archlinux.org/packages/?name=boinc-nox) 软件包,使用 [安装](/index.php/Pacman "Pacman") 其一即可。后者不依赖 [Xorg](/index.php/Xorg_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Xorg (简体中文)"),适用于没有物理控制台的服务器。
两个软件包都提供了系统服务 `boinc-client.service`,可以使用 `systemctl` 管理。详情参见 [Systemd (简体中文)#使用单元](/index.php/Systemd_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#.E4.BD.BF.E7.94.A8.E5.8D.95.E5.85.83 "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 计算,需要安装闭源的 [NVIDIA](/index.php/NVIDIA_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "NVIDIA (简体中文)") 和 [AMD](/index.php/ATI_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "ATI (简体中文)") 驱动。对于 ATI/AMD 显卡,还需要安装 [AUR](/index.php/AUR_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "AUR (简体中文)") 软件包 [libopencl](https://aur.archlinux.org/packages/libopencl/)。NVIDIA 用户只需安装 [extra] 中的 [opencl-nvidia](https://www.archlinux.org/packages/?name=opencl-nvidia) 即可。
此外还需要将 boinc 用户加入 video 组:
```
# gpasswd -a boinc video
```
boinc 用户还需要有访问你的 X session 的权限:
```
xhost local:boinc
```
若要避免每次都输入,可将上述命令加入启动脚本。
**注意:** 对于使用双显卡笔记本电脑的用户,如果使用某些软件(如 bumblebee/bbswitch)禁用了高性能显卡的驱动,在使用 GPU 计算时,可能遇到一些麻烦(找不到显卡、计算错误等等)。如果要使用 GPU 计算,原则上你必须在 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](https://www.archlinux.org/packages/?name=lib32-glibc), [lib32-glib2](https://www.archlinux.org/packages/?name=lib32-glib2)
显示图形需要(如 WCG 的几个子项目、Climateprediction):
[lib32-pango](https://www.archlinux.org/packages/?name=lib32-pango), [lib32-libxdamage](https://www.archlinux.org/packages/?name=lib32-libxdamage), [lib32-libxi](https://www.archlinux.org/packages/?name=lib32-libxi), [lib32-mesa-libgl](https://www.archlinux.org/packages/?name=lib32-mesa-libgl), [lib32-libjpeg6](https://aur.archlinux.org/packages/lib32-libjpeg6/) (AUR), [lib32-libxmu](https://www.archlinux.org/packages/?name=lib32-libxmu)
## 疑难解答
### GPU missing
如果出现这样的错误:
`GPU Missing`
且 GPU 计算任务无法启动,则应尝试 [重启](/index.php/Daemons_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#.E9.87.8D.E5.90.AF.E6.9C.8D.E5.8A.A1 "Daemons (简体中文)") `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 [git://projects.archlinux.org/svntogit/packages.git](git://projects.archlinux.org/svntogit/packages.git) --single-branch --branch packages/openssl
```
如果你安装了 yaourt,也可以使用如下命令:
```
$ yaourt -G openssl
```
执行完第一个命令后,你会看到一个 ./packages/trunk/ 目录,其中有包括 PKGBUILD 在内的若干文件。该 PKGBUILD 需要修改,正确的可以从[这里](http://pastebin.com/pYcYf4dr)下载。
然后,创建软件软件包:
```
$ makepkg
```
完成后,会出现一个扩展名为 .pkg.tar.xz 的软件包,安装并重启 BOINC 服务即可:
```
# pacman -U openssl-*.pkg.tar.xz
# systemctl restart boinc
```
大功告成。如果还有问题,请参见[原讨论贴](https://bbs.archlinux.org/viewtopic.php?pid=1160393#p1160393),发帖请求帮助。
### cc_config.xml 相关配置
cc_config.xml 为BOINC管理器的一个高级配置脚本。通过增加不同的参数,可以达到许多意想不到的效果。
将编辑好的文件复制到 /var/lib/boinc 后,还需更改文件为640权限。
## 相关资源
* [中国分布式计算总站](http://www.equn.com/)
* [BOINC 官方网站](http://boinc.berkeley.edu/)
* [BOINC 项目列表](http://boinc.berkeley.edu/projects.php)
* [维基百科的介绍](https://en.wikipedia.org/wiki/BOINC "wikipedia:BOINC")