一、前言
最近手里闲置了一台VPS,于是找了下看有没合适的项目跑一跑,毕竟物尽其用,能用就别浪费嘛。
正好,发现了BOINC(Berkeley Open Infrastructure for Network Computing)这个好东西。
我这里以Ubuntu 22为例,说下怎么加入项目。
二、如何加入BOINC
1.注册BAM账号
BAM(BOINC Account Manager)是一个账号管理平台,由于发起分布式计算项目的项目组来自不同机构/组织,有了BAM这个平台就可以方便我们统一管理BOINC计算项目。
注册地址:https://www.boincstats.com/bam/register
注册之后,验证好邮箱地址就可以了。
2.加入项目
在BAM平台上加入项目,在【Sign-up for projects】菜单可以看到各个项目,在感兴趣的项目那一行点击【Sign-up】然后点击创建/发现关联账号,等一会就可以加入成功了。
需要注意的是,有些项目已经下线或是不再需要计算资源了,所以建议是不要选offline、No work available、Project down这类的项目。
3.设置项目关联
打开BAM的【Projects】菜单,点击项目的【Default attach】列,把Attach new host by default?选项改成Yes,然后保存,这样后面登录了这个账号的机器都会关联到这个项目。
建议是按照自己机器的算力设置合理的项目关联数量,所有开启default attach的项目最好不超过10个。
当然,也可以在安装好客户端并登录后,在【Host】菜单里面给某一台机器单独设置关联的项目。
4.下载和安装BOINC客户端
我VPS安装的是Ubuntu Server,没有图形界面,所以直接通过ssh终端输入以下命令安装:
sudo apt install boinc-client
注:Windows和macOS的客户端可以到官网下载:http://boinc.berkeley.edu/download.php
然后设置下自启动:
sudo systemctl enable boinc-client
然后修改下本机的全局计算配置:
vim /etc/boinc-client/global_prefs_override.xml
按 i 进入插入模式,把文件的内容改成下面的,然后按 :wq 保存并退出:
<global_preferences>
<cpu_usage_limit>90.000000</cpu_usage_limit>
<disk_min_free_gb>0.000000</disk_min_free_gb>
</global_preferences>
上面的意思是:
①CPU使用率限制为90%,预留10%的CPU性能,避免卡机
②硬盘预留空间为0GB,最多可以把它塞满😉(当然实际占用空间不会很大,视你加入的项目而定)
这些配置在好几个地方都可以设置,不过是按照优先级生效的,它们的优先级如下:
本机的全局配置>BAM的通用配置>项目本身的配置
5.设置目录权限(可选)
sudo chmod 755 -R /etc/boinc-client
BOINC客户端安装好之后会自动创建一个boinc用户,后续默认只有这个用户可以管理本机的BOINC项目。
如果希望其他用户(例如root用户)也可以管理BOINC项目,那就设置下权限。
6. 重启BOINC客户端
sudo systemctl restart boinc-client
7.登录账号
boinccmd --acct_mgr attach https://bam.boincstats.com [Username] [Password]
账号登录成功后,就可以在BAM平台上的【Host】菜单看到自己的机器了。
8.从服务器端同步项目
boinccmd --acct_mgr sync
同步项目之后,你的机器就会开始下载资源并计算了。
后面可以通过这个命令查看机器目前的任务情况:
boinccmd --get_tasks
至此,闲置的机器就开始为科学做贡献了。
后续在BAM平台的【Host】菜单里看到自己机器贡献的计算积分。
附:systemctl管理命令
设置自启动
sudo systemctl enable boinc-client
取消自启动
sudo systemctl disable boinc-client
启动
sudo systemctl start boinc-client
停止
sudo systemctl stop boinc-client
重启
sudo systemctl restart boinc-client
查看状态
sudo systemctl status boinc-client
参考资料:
1.Installing BOINC - BOINC
2.PrefsOverride - BOINC
3.BOINC:使用教程 - 中国分布式计算总站