Answers:
术语“并行计算”和“分布式计算”当然有很大的重叠,但是可以进一步区分。实际上,通过稍后询问“并行处理”和“分布式处理”,您已经在问题中做到了。
人们可以将“分布式计算”视为更笼统的术语,涉及“分布式处理”以及“分布式存储”。通用术语“分布式”通常是指在物理上分离的机器之间通过网络传递的某种消息。
术语“并行计算”还处于进一步定义的过程中,例如通过显式区分术语“并行”和“并发”,其中-第一个大致是指数据并行性,而后者则是任务并行性,尽管并没有真正严格的定义。
所以可以这么说
到目前为止给出的答案非常好,但是我也期望强调并行处理和分布式处理之间的特殊区别:执行的代码。考虑到并行进程,无论并行级别(指令,数据,任务)如何,执行的代码都是相同的。您编写一个代码,它将由不同的线程/处理器执行,例如,在计算矩阵乘积或生成排列时。
另一方面,分布式计算涉及在不同处理器(来自一个或多个机器)中同时执行不同算法/程序。通过使用可用的数据通信/同步方式(共享内存,网络),此类计算随后合并为中间/最终结果。此外,分布式计算对于BigData处理非常有吸引力,因为它允许利用磁盘并行性(通常是大型数据库的瓶颈)。
最后,对于并行度,它可以被视为对同步的限制。例如,在GPGPU(单指令多数据(SIMD))中,并行性是通过为一条指令具有不同的输入而发生的,每对(data_i,指令)由不同的线程执行。这样的限制是,在分支分支不同的情况下,有必要丢弃大量不必要的计算,直到线程重新收敛为止。但是,对于CPU线程,它们通常会有所不同。但是,可以使用同步结构来授权并发执行代码的特定部分。