Ubuntu Server 安装 BOINC
本文最后更新于 2024年8月17日 下午
前言
muzing的杂货铺 所使用的云服务器于最近到期,以包年付费方式购置了一台新的服务器迁移站点,并借机在新的服务器上做一些新的尝试。根据经验,仅运行 Nginx 静态网页服务,双核服务器的 CPU 占用率长期低于 10%,不如将闲置的算力投入到一些更大的事业中去——BOINC 上的科学项目。
本文详细记录了在一台操作系统为 Ubuntu Server 22.04 的 VPS 上安装运行 BOINC 程序,并通过本地电脑图形化方式远程控制的过程。
BOINC 简介
伯克利开放式网络计算平台(英文 Berkeley Open Infrastructure for Network Computing,简称 BOINC,读作 /bɔɪŋk/)是一个用于志愿计算(一种分布式计算)的开源中间件系统[1]。它最初是专为 SETI@home 项目设计,后来发展成为涉及医学、分子生物学、数学、语言学、气候学、环境科学和天体物理学等诸多领域各种项目的平台。BOINC 将全球各地志愿者提供的电脑或移动设备的算力汇聚,提供给这些项目的研究者使用。
截至 2021 年 11 月 16 日,BOINC 作为高性能志愿计算平台,在全球范围内汇聚了 34,236 名活跃参与者和 136,341 台活跃计算机,平均每天处理 20.164 PetaFLOPS。若将其视为一台超级计算机,则其处理能力位居世界第 21 位。
服务器端安装与配置
安装
官方 Wiki 文档:Installing BOINC on Ubuntu
云服务器[2]使用的操作系统为 Ubuntu Server 22.04 LTS,可以直接通过 apt 安装 BOINC 运算服务。由于服务器并没有 GPU 和图形界面,所以无需安装 GPU 支持包和 boinc-manager
图形界面管理器。
虽然可以直接在 Ubuntu 官方仓库中找到软件包 boinc-client
,但还是建议先手动添加 PPA 源,往往可以安装更新的版本:
1 |
|
管理服务
安装成功后,BOINC 以名为 boinc-client.service
的服务方式运行,可以通过 systemctl
命令进行管理。常用命令如下:
1 |
|
设置远程连接密码
官方 Wiki 文档:Controlling BOINC remotely
boinc-client
的配置文件位于 /etc/boinc-client
目录中,主要包括如下数个文件:
文件名 | 描述 | 备注 |
---|---|---|
cc_config.xml |
BOINC 核心客户端最小配置文件 | 详情参考Client configuration。 |
global_prefs_override.xml |
全局计算参数偏好 | 该配置优先级大于所有在项目中设置的计算参数;可以通过 BOINC Manager 修改。 |
config.properties |
配置文件 | 可以在这里修改数据存储路径。 |
gui_rpc_auth.cfg |
图形界面连接密码 | 在此文件中直接以纯文本形式输入的内容,将作为远程连接时的密码。 |
remote_hosts.cfg |
远程主机列表 | 在该文件中列出的 IP 地址被视为信赖地址,允许这些远程主机通过图形界面控制本机的 BOINC 客户端。 |
BOINC Client 的远程图形界面管理默认以白名单方式运行,也就是只有在 remote_hosts.cfg
文件中列出 IP 地址/域名的主机才有资格控制当前机器。这种默认行为适合在局域网环境内由一台装有 Manager 的机器控制多台运行有客户端的机器、所有机器都有固定局域网 IP 的场景,但不适用于用本地电脑通过公网远程连接控制云服务器的场景。
为允许来自任何机器的远程控制,需要编辑 /etc/boinc-client/cc_config.xml
配置文件,添加 allow_remote_gui_rpc
配置项:
1 |
|
安全起见,还应设置远程控制密码。直接以纯文本格式编辑 /etc/boinc-client/gui_rpc_auth.cfg
,将密码写入并保存即可。
1 |
|
注意阿里云等服务商一般都为云服务器设置了防火墙,还需要在防火墙配置中打开入方向的 31416
端口。
本地图形界面管理
安装 BOINC Manager
由于服务器没有图形界面,所以需要在本地具有图形界面的电脑上安装 BOINC Manager 并远程连接,来对 BOINC 进行管理操作。
前往 BOINC 软件下载页面,下载安装适合本地电脑的客户端软件。
对于各 Linux 发行版,亦可通过包管理器安装:
1 |
|
完成安装后,启动 BOINC Manager 应用程序。在菜单栏的「视图」菜单中找到「高级视图…」选项,将 BOINC Manager 切换至高级视图模式。
远程连接
在「文件」菜单中点击「选择计算机」,输入服务器的公网 IP 地址以及刚才设置的密码,进行连接。
连接成功后可以在右下角状态栏中看到主机名称(IP 地址)及 BOINC Client 版本号。首次连接时会弹出选择项目的对话框,而成功加入项目并开始计算任务后的界面如下所示。
加入项目
一切都准备就绪,是时候加入一个激动人心的项目,并开始做出自己的点滴贡献了!首次启动和未加入任何项目时会自动弹出添加项目的对话框,也可以在「工具」菜单中找到该选项。
在「添加项目」页面可以按分类查看目前 BIONC 上所有支持当前系统(Linux)的项目,涉及领域非常广泛,组织方有高校、研究机构、独立组织等。可以复制项目网址到浏览器中查看对应项目的详情。选择好感兴趣的项目后,点击下一步,依提示使用邮箱地址完成账号注册[3],自动打开对应的项目网站进行进一步设置。
对于同时在多个设备上参与多个项目等复杂需求,还可以通过选择「使用账户管理器」来实现。
配置计算参数
可以在两个位置配置计算参数。其一是在项目网站的个人页中设置。其二是优先级更高的本地设置,可以在 Manager 的「选项」菜单中找到「计算参数设置」。在此界面的修改,将会保存到配置文件 /etc/boinc-client/global_prefs_override.xml
中。
例如,此机器为双核 CPU,限制 BOINC 最多使用 50% 的 CPU 数量和 100% 的 CPU 时间,也就是让一个核心一直保持计算,另一个核心空闲而可以处理其他服务。而当其他任务增加、占用 CPU 超过 15% 时就暂停 BOINC 计算任务,优先处理,确保不会影响服务器的突发性能。
注意并非所有选项都可以直接在 BOINC Manager 中设置,可能还需要到项目网站中调整个人账户的设置。比如 PrimeGrid 项目下有多个子项目,需要在项目网页的「个人账户」页面找到 PrimeGrid参数设置,然后在其中调整期望参与哪些子项目,使用 CPU、GPU 硬件设备情况等项目参数。