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

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

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

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

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


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

1、资源重复

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

2、时间重叠

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

3、资源共享

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


并行处理的三种形式

1、时间并行

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

2、空间并行

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

3、时间并行+空间并行

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


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

1.分而治之法

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

2.重新排序法

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

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

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

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

并发性和并行性的区别

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

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

第二章 语言计算研究的先驱 介绍了马尔可夫链、信息熵、范畴语法自然语言模型,并对提出者们进行了简介...
  • hermanncain
  • hermanncain
  • 2017年07月03日 21:47
  • 537

并发性与并行性 并发性与并行性

Concurrency versus parallelism Concurrency and parallelism are very similar concepts. Different aut...
  • sergeycao
  • sergeycao
  • 2017年07月18日 09:57
  • 189

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

我国自然语言处理泰斗冯志伟教授所著《自然语言计算机形式分析的理论与方法》是我国基于规则的自然语言处理方法的集大成之作。本书第一章为自然语言处理的学科定位,冯教授从过程、范围和历史三个方向分析了自然语言...
  • hermanncain
  • hermanncain
  • 2017年07月03日 12:35
  • 337

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

第5章 基于依存和配价的形式模型 依存语法DG(从属关系语法,[法]泰尼埃) 关联关联要建立起句子中词与词之间的依存关系来。依存关系使用“图式”表示。 动词是句子的中心,支配着别的成分,本身不受其他任...
  • hermanncain
  • hermanncain
  • 2017年07月12日 22:55
  • 352

APP敏捷测试,测试和开发并行!

测试和开发具有同等重要的作用,从一开始,测试和开发就是相向而行的。测试是开发团队的一支独立的、重要的支柱力量。   测试要具备独立性,独立分析业务需求,独立配置测试环境,独立编写测试脚本,独立开发...
  • piooix
  • piooix
  • 2016年12月27日 17:13
  • 173

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

第三章 基于短语结构语法的形式模型(一)最为广泛的是短语结构语法PSG大佬合影!(http://blog.sina.com.cn/s/blog_72d083c70100o8m8.html) (左:冯...
  • hermanncain
  • hermanncain
  • 2017年07月04日 15:35
  • 342

并发与并行的区别

3、操作符 3.1 略 3.2 使用java操作符 Java操作符 + - * / ,这些基本操作符作用于操作数,生成一个新值。几乎所有的操作符都只能操作基本类型,例外的操作符是= 、== 和!...
  • lyt_7cs1dn9
  • lyt_7cs1dn9
  • 2016年12月05日 17:56
  • 1572

提高程序并行效率的一点经验

作者:gfree.wind@gmail.com 博客:blog.focus-linux.net   linuxfocus.blog.chinaunix.net    本文的copyleft归gfre...
  • shangyaowei
  • shangyaowei
  • 2013年12月19日 20:48
  • 563

并发编程——并行级别

在看多核编程相关论文时,往往一个并发算法会说自己是wait-free的或者lock-free的,或者是 non-blocking 的,这些专有词汇其实表示的是并发的程度,或者说并发的级别。并发级别的理...
  • nanchengyu
  • nanchengyu
  • 2016年11月07日 09:08
  • 98
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:开发计算机并行性的方法【理论】
举报原因:
原因补充:

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