BOINC
来自 BOINC 网站
- 利用您计算机(Windows、Mac 或 Linux)的空闲时间来治疗疾病、研究全球变暖、发现脉冲星以及进行许多其他类型的科学研究。它安全、可靠且易于使用。
- 伯克利开放式网络计算平台 (BOINC) 是一个非商业中间件系统,用于志愿计算和网格计算。它最初是为了支持 SETI@home 项目而开发的,后来成为一个平台,可用于数学、医学、分子生物学、气候学和天体物理学等不同领域的其他分布式应用。BOINC 的目的是使研究人员能够利用世界各地个人计算机的巨大处理能力。
安装
安装 boinc 或 boinc-nox 软件包。后者省略了 Xorg 依赖项,因此适合在无头服务器上使用。
这两个软件包都安装了一个名为 boinc-client.service
的 unit 文件。
您还需要将自己添加到 boinc
用户组,以便管理器能够连接。
要生成下一节中引用的必要文件,请确保 启动 boinc-client.service
。
已知问题
日志垃圾信息
在 Wayland 上,也可能在 X 上,您可能会注意到 日志 中频繁出现(每秒一次)类似的消息
boinc[98508]: Authorization required, but no authorization protocol specified
参见 [1] 和 [2]。在问题修复之前,一种解决方法是通过编辑 boinc-client.service
来过滤此消息
/etc/systemd/system/boinc-client.service.d/wayland-syslog-spam.conf
[Service] LogFilterPatterns=~no authorization protocol specified
这将从 boinc-client.service
中过滤该消息,因为 systemd 的 release 253。
使用 BOINC
通过 GUI 使用 BOINC
默认情况下,会在 /var/lib/boinc/gui_rpc_auth.cfg
中创建一个密码,用于连接到守护进程。为了简化 GUI 与守护进程的连接,请在您的主目录中创建指向此文件的链接。
$ ln -s /var/lib/boinc/gui_rpc_auth.cfg ~/gui_rpc_auth.cfg
不要忘记将您的用户添加到上面描述的 boinc
组,然后重新登录或重启。
如果您喜欢其他密码,或者根本没有密码,您可以编辑 /var/lib/boinc/gui_rpc_auth.cfg
。然后重启 BOINC 守护进程。
如果您不喜欢在主目录中放置此文件,还有另一种方法。BOINC Manager 还将在当前工作目录中查找可读的 gui_rpc_auth.cfg 文件。如果您使该文件可由 boinc 组读取,并确保管理器以 /var/lib/boinc
作为工作目录运行,您应该会发现客户端自动连接到守护进程,正如预期的那样。这通常可以通过您选择的桌面环境中的菜单编辑器来实现。
要启动 GUI,请使用 boincmgr 命令
$ boincmgr
BOINC 现在应该会引导您完成附加到项目的过程。注意,有些项目允许您通过 GUI 远程创建帐户,而有些项目可能需要您先通过其网站创建帐户。如果您有资源(磁盘空间、时间、CPU 功率),您可以附加到多个项目。通过菜单选项 工具 / 附加到项目 执行此操作。
如果 BOINC 没有要求您连接到项目,请确保您已连接到守护进程。转到菜单选项 高级 / 选择计算机,选择您机器的名称并输入密码。(为避免这种情况,请确保已完成上述关于 gui_rpc_auth.cfg 的步骤。)
使用 GPU 的项目
如果您想使用 GPU,您可能需要专有的 nvidia 或 amd 驱动程序。对于较新的 AMD 系统(如 Ryzen 5 2400G),您可以简单地在开源 AMDGPU 之上安装 opencl-amdAUR,以提供 GPU 工作的 OpenCL 功能。对于 Nvidia,您还需要 extra 中的软件包 opencl-nvidia。为了防止计算错误,您很可能需要 Xorg#驱动程序安装 中列出的 OpenGL (Multilib) 软件包。某些任务(例如 PrimeGrid 上的 Genefer)需要软件包 ocl-icd 才能正常工作。
此外,boinc 用户应在 video
用户组 中。
为了在计算机使用时暂停 GPU 计算,boinc 用户应有权访问您的 X 会话,以便可以将鼠标/键盘输入传达给客户端。这可以通过安装软件包 xorg-xhost (Extra) 并执行以下命令来完成
$ xhost si:localuser:boinc
您可能希望在 Xorg 启动时自动启动 它。
通过 CLI 使用 BOINC
安装 boinc-nox 以在无头系统上使用 BOINC。有两个命令行管理工具可用:boinccmd
和 boinc
。建议使用 boinccmd
。要使用 boinccmd
,您必须
- 启动 BOINC 服务。
- 为
boinccmd
提供密码,以便与服务的 RPC API 进行通信。
要启动 BOINC 服务,请使用提供的 boinc-client.service
unit 文件。(有关更多信息,请参见 Systemd#使用 Units。)BOINC 首次启动时,它将生成一个密码并将其保存到 /var/lib/boinc/gui_rpc_auth.cfg
。要为 boinccmd
提供此密码,请考虑以下方法之一
- 将密码作为命令行标志提供,例如
boinccmd --passwd abc123 --get_host_info
。 - 确保当前目录中存在名为
gui_rpc_auth.cfg
的文件。
完成后,您可以注册项目并将 BOINC 附加到该项目。
要注册项目,您可以使用命令行客户端,或者您可能需要注册单独的网站。要从命令行注册项目,请从 BOINC 项目列表 中选择一个项目,并执行类似 boinccmd --passwd abc123 --create_account ${project_url} ${my_email} ${project_password} ${project_username}
的命令。无论您如何注册,您都必须为您想要 BOINC 附加到的每个项目获取一个密钥。要将 BOINC 附加到项目,请执行类似 boinccmd --passwd abc123 --project_attach ${project_url} ${project_key}
的命令。
默认情况下,BOINC 最多使用 60% 的可用 CPU 时间。如果您希望 boinc 执行更多工作,请编辑其配置文件中与 CPU 相关的选项
/var/lib/boinc/global_prefs.xml
<global_preferences> <cpu_usage_limit>100.0</cpu_usage_limit> ... </global_preferences>
您可以在 BOINC 项目的文档中查看其他可用的 XML 配置选项。
远程控制 BOINC
“远程” RPC 是指来自不同计算机的 RPC。
所有远程 RPC(状态和控制)都使用 GUI RPC 密码进行身份验证。
默认情况下,不接受来自任何主机的远程 RPC。要指定一组允许从中接收 RPC 的主机,请在您的 BOINC 数据目录中创建一个 remote_hosts.cfg
文件,其中包含允许的 DNS 主机名或 IP 地址列表(每行一个)。只有这些主机才能连接。remote_hosts.cfg
文件也可以包含以 # 或 ; 字符开头的注释行。
您还可以在 cc_config.xml
文件的 options 部分中设置 remote-allowed 选项
/var/lib/boinc/cc_config.xml
<cc_config> <options> <allow_remote_gui_rpc>1</allow_remote_gui_rpc> ... </options> </cc_config>
您可以在 BOINC 项目的文档中查看其他可用的 客户端配置。
或者,如果您使用 --allow_remote_gui_rpc
命令行选项运行客户端,它将接受来自任何主机的连接(受密码验证约束)。如果您有 remote_hosts.cfg
文件,但同时也使用 --allow_remote_gui_rpc
启动客户端,则该文件将被忽略,并且将允许任何主机连接。
请注意,BOINC Manager 上“高级”菜单中的“读取配置文件”也会读取 remote_hosts.cfg
文件,即无需重启客户端即可启用对远程主机列表的更改。
日志文件
BOINC 将日志文件放置在 /var/lib/boinc/
中
/var/lib/boinc/stderrdae.txt /var/lib/boinc/stdoutdae.txt
选择项目时的注意事项
项目对硬件的最低要求(CPU、磁盘空间)不同,并且每个工作单元的运行时间也不同。如果您未在截止日期前完成工作单元,它将被发送给其他人,但最好四处看看哪些项目适合您的机器和您的正常运行时间模式,以避免这种情况发生。
此外,如果这对您很重要,请检查项目是否公开数据和结果。
运行 32 位项目
某些项目仅提供 32 位应用程序,这些应用程序可能需要 32 位库才能运行工作单元或显示图形。您将在 multilib 仓库中找到大多数这些库。
要运行 WU(例如 Climateprediction),安装 lib32-glibc, lib32-glib2。
要显示图形(例如 WCG 的多个项目、Climateprediction、Quake-Catcher Network),安装 lib32-pango, lib32-libxi, lib32-mesa, lib32-libjpeg6-turbo, lib32-libxmu, lib32-glu 和 lib32-freeglut。
故障排除
GPU 丢失
如果您收到此错误
GPU Missing
并且工作单元未启动,您应该 重启 boinc-client.service
守护进程。
如果 BOINC 守护进程在 X 会话完全初始化之前启动,则会发生这种情况。
笔记本电脑过热和电池续航时间缩短
如果您在笔记本电脑上使用 ondemand
调速器(默认)运行 BOINC,它会将 CPU 保持在最大频率,使其(过度)发热,并缩短电池续航时间。解决此问题的最佳方法是将 ondemand
设置为不为 BOINC 提高 CPU 频率
# echo 1 >/sys/devices/system/cpu/cpufreq/ondemand/ignore_nice_load
要在启动时执行此操作,请创建以下 tmpfile 配置
/etc/tmpfiles.d/ondemand-ignore-nice.conf
w /sys/devices/system/cpu/cpufreq/ondemand/ignore_nice_load - - - - 1
GPU 工作单元内存不足
当尝试基于 OpenCL 的工作单元时,您可能会收到错误
Sorry, at the moment your system doesn't have enough free CPU/GPU memory to run this task!
编辑 boinc-client.service
并修改行
ProtectSystem=strict
至
ProtectSystem=full
要应用更改,请执行 systemd daemon-reload 并 重启 boinc-client.service
。