Parallel processing 并行程序、并行程序和分布式程序之间的区别

Parallel processing 并行程序、并行程序和分布式程序之间的区别,parallel-processing,concurrent-programming,distributed-programming,Parallel Processing,Concurrent Programming,Distributed Programming,我只是在学习编程结构;特别是我在研究并行程序。我读过几篇文章,其中并发程序、并行程序和分布式程序之间的区别似乎令人混淆 我的理解如下: 并发程序:同时执行多个任务或给出这样做的概念 并行程序:解决这类问题的算法允许同时执行一些相关的任务 分布式程序:与相应算法中固有的并行性相比,更多地与可用资源有关。可以使用多个计算资源来解决该问题 有人能告诉我这些术语的正确和详细的解释吗 这些术语确实相互关联,有时相互重叠: 并行编程是并发编程的一个子集,旨在使用多个并发执行实体(线程、进程)来加速某些计算。

我只是在学习编程结构;特别是我在研究并行程序。我读过几篇文章,其中并发程序、并行程序和分布式程序之间的区别似乎令人混淆

我的理解如下:

并发程序:同时执行多个任务或给出这样做的概念

并行程序:解决这类问题的算法允许同时执行一些相关的任务

分布式程序:与相应算法中固有的并行性相比,更多地与可用资源有关。可以使用多个计算资源来解决该问题


有人能告诉我这些术语的正确和详细的解释吗

这些术语确实相互关联,有时相互重叠: 并行编程是并发编程的一个子集,旨在使用多个并发执行实体(线程、进程)来加速某些计算。 正如您所说,分布式计算是一个非常广泛的主题,它主要关注使用资源来解决问题。这些资源可以在同一台机器上,也可以在地理上分散或异构。在并行计算和分布式计算之间很难划清界限。并行计算可能是分布式的,也可能不是分布式的,这取决于所使用的资源,而分布式计算可能是或不是用于并行解决问题

在我看来,这些术语之间微妙的区别来自于它们被考虑的抽象层。当主要焦点是在一些共享数据上的独立计算实体的交互时,我们讨论并发编程。当关键的方面是通过使用多个计算单元来加速计算时,我们就有了并行计算。最后,如果重点是如何管理资源以解决某些问题,那么我们讨论的是分布式计算