# BOINC (简体中文)

翻译状态： 本文是英文页面 BOINC 的翻译，最后翻译时间：2014-01-18，点击这里可以查看翻译后英文页面的改动。

BOINC 官方网站：“利用您的计算机（Windows、Mac 以及 Linux）的空闲的时间，帮助寻找治疗疾病的方法、研究全球变暖、发现脉冲星…… 进行各种各样的科学研究。这一切简单且安全！”

维基百科：“伯克利开放式网络计算平台（Berkeley Open Infrastructure for Network Computing，BOINC）是一个用于志愿计算和网格计算的非商业的中间件系统。开发 BOINC 的最初目的是支援 SETI@home 项目，而后来它发展成为一个支持多种项目的强大的分布式计算平台，这些项目的研究领域涵盖了数学、医学、分子生物学、气候学以及天体物理学等等。BOINC 力图让研究人员享用到全世界数以亿计的个人电脑的强大计算能力。”

## 安装

官方仓库 提供了 boinc 和 boinc-nox 软件包，使用 安装 其一即可。后者不依赖 Xorg，适用于没有物理控制台的服务器。

两个软件包都提供了系统服务 `boinc.service`，可以使用 `systemctl` 管理。详情参见 Systemd (简体中文)#使用单元。

## 使用

注意: 以下内容仅仅适用于：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 和 AMD 驱动。对于 ATI/AMD 显卡，还需要安装 AUR 软件包 libopenclAUR。NVIDIA 用户只需安装 [extra] 中的 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, lib32-glib2
显示图形需要（如 WCG 的几个子项目、Climateprediction）：
  lib32-pango, lib32-libxdamage, lib32-libxi, lib32-mesa-libgl, lib32-libjpeg6AUR[broken link: archived in aur-mirror] (AUR), lib32-libxmu

## 疑难解答

### GPU missing

如果出现这样的错误：

    GPU Missing

且 GPU 计算任务无法启动，则应尝试 重启 `boinc.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 --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权限。

## 相关资源

- 中国分布式计算总站
- BOINC 官方网站
- BOINC 项目列表
- 维基百科的介绍

Category:

- Mathematics and science (简体中文)

Hidden category:

- Pages with broken package links