一、志愿者分布式计算的定义和特点
志愿者计算(Volunteer Computing)通常是指很多志愿者共同参与一些大型的分布式计算项目。它是一种利用遍布全世界的普通民众的运算资源,让一般志愿者参与并提供计算和存储资源的计算项目。
分布式计算(Distributed Computing)是计算机科学的一个重要分支,它主要研究如何把一个需要巨大的计算能力才能解决的问题分解成许多小的部分,然后把这些部分再分配给许多志愿者计算机进行处理,最后把这些计算结果综合起来得到最终的结果。通过因特网,志愿者分布式计算将世界各地成千上万位志愿者的计算机的闲置计算能力整合起来,创造了无数奇迹!
志愿者分布式计算听起来似乎有些神秘,但实际上它们离我们并不远,甚至就在我们身边。目前分布式计算项目已经有很多,涉及到天文学、生命科学、数学、计算机科学等诸多学科,而且许多还是科学研究的前沿领域,或是能引起人们持久兴趣的方面,如地外文明,生命起源等。多数项目,只要你有兴趣,通过下载安装一个很小的客户端程序就可以参与进去。只要你参与的是正规的分布式计算项目,当然可以和研究人员一样平等地获取项目进度和运算结果。
分布式计算
分布式计算是近年提出的一种新的计算方式。所谓分布式计算就是在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。比如说我的计算机运算一道题需要很长时间,为了加快速度,我可以把这道题拆分开,让朋友们来帮忙一起运算,最后汇总所有人的结果。这就是一次典型的志愿者分布式计算。而这种运算方式的核心思想就是志愿参与并分享结果。
分布式计算正在飞速发展和应用,它通过网络连接所有志愿者的电脑,在电脑闲暇时贡献出运算能力,来集中解决世界性难题。你可以自由参与数学、物理、生命科学等等计算项目,你的电脑可以行动起来搜寻外星人、破解数学难题、攻克世界性疑难病症……这些项目通常需要惊人的计算量,由一台计算机计算是不可能完成的。即使现在有了计算能力超强的超级计算机,但是一些科研机构的经费却又十分有限。
分布式计算就是这样一种倡导自由参与、量力贡献、平等分享的开放性计算方式。开发者用项目的优势特别是公益性,同时借助自己的影响力和权威性来吸引志愿者的参与,同时让每一个参与者知道自己做了什么贡献,这个项目的进展情况如何,现在得出了什么样的运算结果,有的项目在结束后还会公开源代码。由于分布式计算的开放性,所有基于计算结果的研究成果将使全人类受益。
简单说来,志愿者分布式计算就是选择一个你信任并感兴趣的项目,下载一个程序,并在后台运行它,它会自动上传运算的结果。当然你可以加入一些团队,比如加入各项目的Team China中国团队,当然不同国度的团队之间以贡献运算量为标准,进行着激烈竞争。
如果你觉得这样的理论性的讲解不够生动贴切,难以理解,那就让我们共同探索一些著名的分布式计算项目,更多生动的例子将展现在我们眼前。