我刚刚进行编程结构研究;特别是我正在研究并发计划。我遇到过一些文章,其中并发程序,并行程序和分布式程序之间的区别似乎令人困惑。
我的理解如下:
并发程序:同时执行多个任务或提供这样做的概念
并行程序:解决此类问题的算法允许一些相关任务同时执行
分布式程序:与相应算法中的固有并行性有关的可用资源更多。可以使用多种计算资源来解决问题。
有人可以指出我对这些条款的正确和详细解释吗?
答案 0 :(得分:2)
这些术语确实相关,有时甚至重叠: 并行编程是并发编程的一个子集,旨在使用多个并发执行实体(线程,进程)以加速某些计算。 正如您所说,分布式计算是一个非常广泛的主题,专注于使用资源来解决问题。这些资源可以位于同一台计算机上,也可以是地理位置分散或异构的。在并行和分布式计算之间很难划清界限。并行计算可能会或可能不会分布,具体取决于所使用的资源,而分布式计算可能会或可能不会用于并行解决问题。
在我看来,这些术语之间的细微区别来自于它们被考虑的抽象层。当主要关注的是单独的计算实体与某些共享数据的交互时,我们将讨论并发编程。当关键方面是通过使用几个计算单元加速计算时,我们有并行计算。最后,如果重点是资源管理方式来解决某些问题,那么我们就是在讨论分布式计算。