1.串行计算:传统上,一般的软件都是串行式计算,即将一个"problem"划分成一串离散的"Instructions",每个"Instructions会在单个CPU上一个一个被执行,CPU在同一时间内只能处理一个"Instructions“
2.并行计算:将一个problem分解成多个可以被同时处理的part,再把每一个part划分成一串离散的instrutions,每个part把自己的instrutions交给各自的CPU进行处理,每个Cpu同时受理不同part的instrutions,再加入一个统一的控制机制对整个过程进行控制
3.分布式计算:分布式计算属于研究分布式系统的计算机科学领域。分布式系统,是将自己的所有组件分散在属于不同网络的计算机上,这些计算机通过统一的消息机制来相互通讯和配合。分布在不同网络计算机上的组件互相协作,完成共同的目标。
分布式计算与并行计算的区别:如果处理单元(处理单元也就是我们所说的CPU)共享内存,就称为并行计算,反之就是分布式计算。也有人认为分布式计算是并行计算的一种特例。
其实分布式的任务包相互之间有独立性,上一个任务包的结果未返回或者处理结果错误,对下一个任务包的处理几乎没有什么影响。因此,分布式的实时性要求不高,而且允许存在计算错误(因为每个计算任务给好几个参与者计算,结果上传到服务器后要比较,然后对结果差异大的进行验证)。而并行程序并行处理的任务包相互之间有很大的联系,并且并行计算的每一个任务块都是必要的,没有浪费的分割的,就是每个任务包都要处理,而且计算结果相互影响,这就要求每个计算结果要正确,而且在时间上要尽量做到同步,而分布式的很多任务块可以不用处理,比如大量的无用数据块,所以说分布式计算的速度尽管很快,但是真正的“效率”是低之又低的,
4.网格计算:网格计算是利用广泛的零散的计算资源完成一个共同任务,它也是分布式计算的一种。根据IBM对“网格”的定义,它将本地网络或者互联网上零散的可用计算资源集合起来,使终端用户或者应用觉得他们在使用一台性能强悍的虚拟计算机。网格计算的愿景是创立一个虚拟动态的资源集合,使个人和组织机构能够安全协调的使用这些资源。网格计算通常使用集群的方式实现。