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