BOINC

来自 ArchWiki

来自 BOINC 网站

利用您计算机(Windows、Mac 或 Linux)的空闲时间来治疗疾病、研究全球变暖、发现脉冲星以及进行许多其他类型的科学研究。它安全、可靠且易于使用。

来自 Wikipedia:BOINC

伯克利开放式网络计算平台 (BOINC) 是一个非商业中间件系统,用于志愿计算和网格计算。它最初是为了支持 SETI@home 项目而开发的,后来成为一个平台,可用于数学、医学、分子生物学、气候学和天体物理学等不同领域的其他分布式应用。BOINC 的目的是使研究人员能够利用世界各地个人计算机的巨大处理能力。

安装

安装 boincboinc-nox 软件包。后者省略了 Xorg 依赖项,因此适合在无头服务器上使用。

这两个软件包都安装了一个名为 boinc-client.serviceunit 文件。

您还需要将自己添加到 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 中过滤该消息,因为 systemdrelease 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。有两个命令行管理工具可用:boinccmdboinc。建议使用 boinccmd。要使用 boinccmd,您必须

  1. 启动 BOINC 服务。
  2. 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-glulib32-freeglut

故障排除

GPU 丢失

如果您收到此错误 

GPU Missing

并且工作单元未启动,您应该 重启 boinc-client.service 守护进程。

如果 BOINC 守护进程在 X 会话完全初始化之前启动,则会发生这种情况。

笔记本电脑过热和电池续航时间缩短

本文或章节已过时。

原因: ondemand 不再 是默认调速器。(在 Talk:BOINC 中讨论)

如果您在笔记本电脑上使用 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

参见