理论教育 传统并行计算编程模型分析

传统并行计算编程模型分析

时间:2023-06-14 理论教育 版权反馈
【摘要】:并行计算编程模型是从并行算法的设计和分析出发,将各种并行计算机的基本特征抽象出来,形成一个抽象的计算模型。并行编程需要很高的成本,通用的编程虽然可以降低成本,但是通用性又会带来更大的性能损失。并行计算可分为时间上的并行和空间上的并行。并行计算的处理模式有主从模型和对称处理模型。并行计算涉及如何将应用程序划分成多个独立的任务,并确定这些任务之间的相互依赖关系。

传统并行计算编程模型分析

并行计算编程模型是从并行算法的设计和分析出发,将各种并行计算机的基本特征抽象出来,形成一个抽象的计算模型。并行编程需要很高的成本,通用的编程虽然可以降低成本,但是通用性又会带来更大的性能损失。

并行计算可分为时间上的并行和空间上的并行。时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。并行计算的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算,最后将结果汇总。

并行计算的处理模式有主从模型和对称处理模型。

(1)主从模型。只有一个主进程,其他是从进程。主进程负责整个系统的控制(包括任务调度、负载平衡),从进程负责对数据的处理和计算任务,MapReduce 采用的就是该模型。

(2)对称处理模型。这种架构没有主从概念之分,所有进程的地位都是平等的。在并行执行过程中,可以任意选择其中一个进程执行输入输出操作,其他进程扮演同样的角色。

并行计算涉及如何将应用程序划分成多个独立的任务,并确定这些任务之间的相互依赖关系。分解问题的方式主要有三种:任务分解、数据分解、数据流分解。

(1)任务分解(www.daowen.com)

任务分解是对应用程序根据其执行的功能进行分解,它是一种能够简单实现并行执行的方法,根据这种方法够对众多的独立任务进行分类。

(2)数据分解

数据分解是将应用程序根据各任务处理的数据而非按任务的天然特性来进行分解的方法。

(3)数据流分解.

很多情况下,当对一个问题进行分解的时候,关键问题不在于采用一些什么任务来完成这个工作,而在于数据在这些任务之间是如何流动的。这种时候就需要采用数据流分解方式,根据任务之间的数据流关系对问题进行分解,生产者/消费者模型就是典型的数据流分解。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈