3.1.2 分布式计算
分布式计算主要研究分散系统如何进行计算。分散系统是一组计算机,通过计算机网络相互链接与通信后形成的系统。分布式计算就是把需要进行大量计算的工程数据分区成小块,由多台计算机分别计算,再上传运算结果,然后将结果统一合并得出数据结论的计算模式。
常见的分布式计算项目通常是采用世界各地上千万志愿者计算机的闲置计算能力,通过互联网进行数据传输。如分析计算蛋白质的内部结构和相关药物的Folding@home项目,该项目结构庞大,需要惊人的计算量,由一台计算机计算是不可能完成的。
分布式计算比起其他算法具有以下几个优点:
①稀有资源可以共享;
②通过分布式计算可以在多台计算机上平衡计算负载;
③可以把程序放在最适合运行它的计算机上。(https://www.daowen.com)
其中,共享稀有资源和平衡负载是计算机分布式计算的核心思想之一。
分布式计算与并行计算都是运用并行来获得更高性能,化大任务为小任务。简单说来,如果处理单元共享内存,就称为并行计算,反之就是分布式计算。分布式计算中,被分解后的小任务互相之间有独立性,节点之间的结果几乎不互相影响,实时性要求不高。而并行计算则倾向于一些海量数据进行分析处理的场合,每个节点的每一个任务块都是必要的,计算的结果相互影响,要求每个节点的计算结果要绝对正确,并且在时间上做到同步。举例来说,像MD5破解,就比较适合使用大规模的分布式计算来穷举,但对于通过海量日志数据处理来分析用户行为就比较适合并行计算处理。分布式计算会是一个比较松散的结构,并行计算则是各节点之间通过高速网络或其他总线相互连接。因此并行计算一般在企业内部进行,而分布式计算可能会跨越局域网,或者直接部署在互联网上,节点之间几乎不互相通信。很多公益性的项目,就是使用分布式计算的方式在互联网上实现,比如以寻找外星人为目的的SETI项目。
也就是说,分布式计算是研究如何把一个需要巨大的计算能力才能解决的问题,分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。具体的过程是:将需要进行大量计算的项目数据分割成小块,由多台计算机分别计算,再上传运算结果后统一合并得出数据结论。
一般来说,并行计算是一台计算机,配备有多处理机,多处理机之间进行合同协作计算,最终结果由一台计算机处理。分布式计算是多台联网的计算机,有各自的主机和处理器,通过网络分配共享计算任务和计算信息。