一些科研项目,如分析计算蛋白质内部结构这类项目,因为模型结构复杂、计算量庞大,单台计算机难以胜任这种工作。虽然随着超级计算机的建设,情况有所好转,但很多科研项目因为商业价值有限或是研究领域偏僻,项目经费无法支持超算编程和租用得昂贵费用,分布式计算平台的出现则让其中一部分项目可以以较小的成本达到目标。
什么是分布式计算
分布式计算的定义
一个分布式系统包括若干通过网络互联的计算机。这些计算机互相配合以完成一个共同的目标(我们将这个共同的目标称为“项目”)。具体的过程是:将需要进行大量计算的项目数据分割成小块,由多台计算机分别计算,再上传运算结果后统一合并得出数据结论。
传统上只要是客户端数据提交给服务器的系统,典型的比如传感器系统、网络游戏甚至是互联网,都可以看作是一个分布式计算系统。
而目前狭义的分布式计算通常指的是,志愿者通过互联网数据传输为复杂科研项目提供算力的一种并行计算模式。
分布式计算的安全性
志愿者无从得知他从项目方下载的计算程序是如何运行的,并且程序运行得结果还会回传项目方,这其中的安全性完全建立在项目方的信誉之上,需要志愿者的信任。
怎么加入分布式计算
分布式计算平台
普通用户很难知道,目前哪些项目需要他们贡献算力,以何种方式贡献。平台就充当了一个志愿者与项目方之间的中介,让志愿者以比较简单的方式参与到项目中。
BOINC,全称为 Berkeley Open Infrastructure for Network Computing,即伯克利开放式网络计算平台,就是目前使用最为广泛的分布式计算平台。
由美国加州大学伯克利分校空间科学实验室的一个团队所开发,领导者为 David Anderson。最早是为了支持其所领导的 SETI@home 项目,之后逐渐成了最为主流的分布式计算平台,为众多的数学、物理、化学、生命科学、地球科学等学科类别的项目所使用。
BONIC 作为全球最大的计算网络,每秒浮点运算能力达到了 26 Peta,即使在超算排名中,BONIC 的算力也仅次于 Summit、神威、天河2号位列第 4 位。

BOINC 目前支持 Windows、macOS、Linux 和 Android 四个平台,其中 Windows 的版本更新速度最快,其他平台版本都有不同的代差。

分布式计算项目
目前 BOINC 上架的项目主要以项目组的形式存在,每个项目组都由一个科研机构建立,志愿者在加入项目组后可以选择为旗下的一个或几个项目提供算力,自 1995 年来已经有超过 50 个科研机构在 BOINC 上发布项目,这里只简单地介绍两个。
CAS@home
中国科学院高能物理研究所计算中心所搭建,目前项目集中在蛋白质结构、纳米科技、癌症与基因、高能物理四个领域,具体研究计划与进展可以在官网 相关页面 看到,是目前唯一一个由中国科研机构领导的的项目。
World Community Grid
由 IBM 领导的 World Community Grid 是目前 BOINC上最大的一个项目组,目前有 449 个企业、教育、科研和政府机构参与,但项目的发布仅限于公共非盈利组织的人道主义研究。

一点想法
入坑之前,我注意到自己在用电脑时,绝大部分时候只需要其 CPU 性能的 20% 不到,更别说 GPU 了,于是希望能把闲置的算力用在一些有意义的地方,便在搜索中找到了 BOINC。

得益于我在公司和家中的电脑性能都还算强大,在很短的时间内就获得了 26 多万的点数,但随着劲头的衰减,开始质疑自己是否有必要在不用电脑的时候还在后台运行计算程序,是否为了那点贡献点数太过狂热?

论坛 现在便是这样一个氛围,感觉渐渐脱离了一个公益项目的初衷,变成了参与者攀比的工具。