分布式计算

来自中国分布式计算总站
昂宿星团人讨论 | 贡献2010年3月7日 (日) 18:00的版本 '''分布式计算'''
跳转至: 导航搜索

分布式计算是一门计算机科学,主要研究分布式系统。一个分布式系统包括若干通过网络互联的计算机。这些计算机互相配合以完成一个共同的目标(我们将这个共同的目标称为“项目”)。具体的过程是:将需要进行大量计算的项目数据分割成小块,由多台计算机分别计算,再上传运算结果后统一合并得出数据结论。在分布式系统上运行的计算机程序称为分布式计算程序;分布式编程就是编写上述程序的过程。

本站主要关注和讨论的就是志愿者们在参加项目的过程中遇到的问题和经验、各个项目的动态及对我国分布式计算项目的开发。

目前常见的分布式计算项目通常使用世界各地上千万志愿者计算机的闲置计算能力,通过互联网进行数据传输。有分析地外无线电信号,从而搜索地外的生命迹象的SETI@home项目,该项目数据基数很大,超过了千万位数,是目前世界上最大的分布式计算项目,已有一百六十余万台计算机加入了此项目(在中国大陆大约有1万4千位志愿者);同时也有分析计算蛋白质的内部结构和相关药物的Folding@home项目,该项目大约有十万余志愿者参加(在中国大陆大约有6000位志愿者)。这些项目很庞大,需要惊人的计算量,由一台电脑计算是不可能完成的。即使现在有了计算能力超强的超级电脑,但是一些科研机构的经费却又十分有限。

引言

“分布式的(distributed )”这个词在诸如分布式系统(distributed system)、分布式编程(distributed programming)、分布式运算法则(distributed algorithm)等术语中原本指的是由多台个人计算机物理地分布在一定地理区域中而形成的的计算机网络。这些术语如今被赋予了更加宽泛的意义,甚至可以指代运行在同一台计算机上,并通过传递信息互相影响的几个进程。

由于分布式系统没有规范的定义,我们可以用一下特性来区别分布式系统:

  • 有多个自助的计算实体(computational entities),并且各自拥有本地存储器。
  • 计算实体间通过消息传递进行联系。

本文中,计算实体也会被写作“计算机(computers)”或“节点(nodes)”。 一个分布式系统应有一个共同目标,比如解决一个需要大量计算的问题。或者,每台计算机都有其使用者,这些使用者有着各自不同的需求,而分布式系统的目的就是合理调度分享的资源或给用户提供交流服务。

另外几个分布式系统的典型特性是:

  • 系统必须容纳个体计算机返回的错误
  • 系统的结构(网络拓扑结构、网络延迟、计算机编号等)是不能够预测的,系统可能包含有不同种的计算机和网络连接,并且会在分布式程序进行过程中出现变化。
  • 每台计算机都只能受限制地观察到不完整的系统。有可能每台计算机都只知道受处理信息的一部分。

并行计算还是分布式计算?

(a)–(b) 分布式系统
(c) 并行系统

外部连结

我们的分布式计算论坛