开发计算机并行性的方法【理论】

原创 2016年08月30日 15:48:21

并行性主要是指同时性或并发性,并行处理是指对一种相对于串行处理的处理方式,它着重开发计算过程中存在的并发事件。

并行处理(Parallel Processing)是计算机系统中能同时执行两个或更多个处理的一种计算方法。并行处理可同时工作于同一程序的不同方面。并行处理的主要目的是节省大型和复杂问题的解决时间。为使用并行处理,首先需要对程序进行并行化处理,也就是说将工作各部分分配到不同处理进程(线程)中。并行处理由于存在相互关联的问题,因此不能自动实现。另外,并行也不能保证加速。从理论上讲,在 n 个并行处理的执行速度可能会是在单一处理机上执行的速度的 n 倍。

并行性通常划分为作业级、任务级、例行程序或子程序级、循环和迭代级以及语句和指令级。作业级的层次高,并行处理粒度粗。粗粒度开并行性开发主要采用MIMD方式,而细粒度并行性开发则主要采用SIMD方式。


开发计算机并行性的方法主要有:资源重复、时间重叠和资源共享三种方法。

1、资源重复

资源重复是在并行性概念中引入空间因素。这种措施提高计算机处理速度最直接,但由于受硬件价格昂贵的限制而不能广泛使用。目前,随着硬件价格的降低,已在多种计算机系统中使用,如多处理机系统、陈列式处理机等。

2、时间重叠

时间重叠是在并行性概念中引入时间因素,即多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部件,以加快硬件周转而赢得速度。这各并行措施表现在指令解释的重叠及流水线部件与流水线处理机。

3、资源共享

资源共享也是在并行性概念中引入时间因素,它是通过软件的方法实现的。即多个用户按一定的时间顺序轮流使用同一套硬件设备;既可以是按一定的时间顺序共享CPU,也可以是CPU与外围设备在工作时间上的重叠。这种并行措施表现在多道程序和分时系统中,而分布式处理系统和计算机网络则是更高层次的资源共享。


并行处理的三种形式

1、时间并行

时间并行指时间重叠,在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
时间并行性概念的实现方式就是采用流水处理部件。这是一种非常经济而实用的并行技术,能保证计算机系统具有较高的性能价格比。目前的高性能微型机几乎无一例外地使用了流水技术。

2、空间并行

空间并行指资源重复,在并行性概念中引入空间因素,以“数量取胜”为原则来大幅度提高计算机的处理速度。大规模和超大规模集成电路的迅速发展为空间并行技术带来了巨大生机,因而成为实现并行处理的一个主要途径。空间并行技术主要体现在多处理器系统和多计算机系统。但是在单处理器系统中也得到了广泛应用。

3、时间并行+空间并行

指时间重叠和资源重复的综合应用,既采用时间并行性又采用空间并行性。显然,第三种并行技术带来的高速效益是最好的。


在并行处理技术中所使用的算法主要遵循三种策略:

1.分而治之法

也就是把多个任务分解到多个处理器或多个计算机中,然后再按照一定的拓扑结构来进行求解。

2.重新排序法

分别采用静态或动态的指令词度方式。

3.显式/隐式并行性结合

显式指的是并行语言通过编译形成并行程序,隐式指的是串行语言通过编译形成并行程序,显式/隐式并行性结合的关键就在于并行编译,而并行编译涉及到语句、程序段、进程以及各级程序的并行性。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

计算机并行性研究

  • 2015年03月29日 21:04
  • 162KB
  • 下载

并行性

并行性:cpu处理指令是并行的,前一条指令处理时,紧接着前一条的指令也会开始处理,如果后一条指令和前一条指令无关,那么程序性能会得到提升,我们常常会把一个操作分解成几条指令并行来提升性能。 实例代码...

DB2v9_并行性_锁

  • 2013年04月18日 13:54
  • 1.25MB
  • 下载

浅谈Mental Ray渲染引擎并行性机制

最近一段时间过的很充实,抽周末时间总结一下自己所学渲染技术的心得体会,希望可以帮助需要此知识的朋友,也作为备忘录以供查阅。 在图形学领域,提高渲染效率及渲染时间,从而得到更好的交互体验,是每个技术人员...

Java 并发编程实战学习笔记——寻找可强化的并行性

寻找可强化的并行性 1.串行执行所有任务 代码 复制 - 运行 package net.jcip.examples; import java.util.*; /** * Singl...
  • novelly
  • novelly
  • 2013年11月12日 17:57
  • 738

并发性与并行性的差别【转】

并行性包含同时性和并发性,前者是指两个或多个事件在同一时刻发生,后者是指两个或多个事件在同一时间段内发生。   计算机操作系统中把并行性和并发性明显区分开,主要是从微观的角度来说的,具体是指进程的并...

多线程进阶003 之 可利用的并行性案例

学习书籍推荐《Java Concurrency In Practice》在大多数服务器应用程序中都存在一个明显的任务边界: 单个客户请求. 但是有时候,任务边界并非是显而易见的,例如在很多桌面应用程...

并发性和并行性的区别

并发性和并行性的区别 所有的并发处理都有排队等候,唤醒,执行至少三个这样的步骤.所以并发肯定是宏观概念,在微观上他们都是序列被处理的,只不过资源不会在某一个上被阻塞(一般是通过时间片轮转...
  • haiross
  • haiross
  • 2014年07月04日 15:56
  • 2057

《自然语言计算机形式分析的理论与方法》读书笔记(2)

第二章 语言计算研究的先驱 介绍了马尔可夫链、信息熵、范畴语法自然语言模型,并对提出者们进行了简介...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:开发计算机并行性的方法【理论】
举报原因:
原因补充:

(最多只允许输入30个字)