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权限。

相关资源[编辑 | 编辑源代码]