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