Publicitade D▼
⇨ definição - Wikipedia
Publicidade ▼
Wikipedia
分布式计算是一种把需要进行大量计算的工程数据分割成小块,由多台计算机分别计算,在上传运算结果後,將結果统一合并得出数据结论的科学。
目前常见的分布式计算项目通常使用世界各地上千万志愿者计算机的闲置计算能力,通过互联网进行数据传输。如分析计算蛋白质的内部结构和相关药物的Folding@home项目,該项目結構庞大,需要惊人的计算量,由一台电脑计算是不可能完成的。即使现在有了计算能力超强的超级电脑,但是一些科研机构的经费却又十分有限。
目录 |
可参见网格计算。
在并行算法中,对资源的要求除了时间和空间之外,还包括计算机的数量。通常,运行时间和计算机数量之间有个权衡:在并行系统中,更多的计算机会使得问题解决得更加快速(见speedup)。如果一个决策问题通过使用一个多项式数的处理器在综合对数时间内被解决,那么,称这个问题属于NC类。NC类可以用并行随机存取机的形式或者布尔电路来等价——并行随机存取机可以有效地仿真布尔电路,反之亦然。
在分布式算法分析中,人们更加关注的是计算机间的通信而不是算法步骤。同步系统可能算是最简单的分布式系统了,因为它里面所有的节点步调一致。在每一轮通信中,所有节点并行:
(1)从他们邻居节点接受最新消息。
(2)执行任意的本地计算。
(3)给邻居节点发送信息。
在中系统中,核心计算复杂度在于完成任务所需要的同步通信轮数上。
算法复杂度和网络的直径有密切关系。设网络直径为D。一方面,在同步分布式系统中,任何计算问题几乎都可以在2D轮通信之内完成:收集信息到一个本地节点(D轮通信),然后计算,再把计算结果告诉邻居节点(D轮通信)。
另一方面,如果运行时间远远小于D轮通信,这时候,网络中的节点还没来得及获取网络中远处的信息,就得产生输出。换句话说,节点只有在获取了邻居节点之后才能对网络做出决定。很多的分布式算法运行时间都远远小于D轮通信,在这种情况下,明白什么问题能用这类算法来解就是这个领域的核心问题了。
其他的衡量措施是网络上传输的比特总数(cf. communication complexity)。
|
|
Conteùdo de sensagent
calculado em 0,032s