并行算法的设计基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
f ( n) lim c n g ( n)
则 (1)当c≠0时,说明f(n)和g(n)同阶,记为f(n)=Θ(g(n)) (2)当c=0时,说明f(n)比g(n)低阶,记为f(n) =O(g(n)) (3)当c=∞时,说明f(n)比g(n)高阶,记为f(n)=Ω(g(n))
2018/11/4 12
定义4:异步算法(asynchronous algorithm):是指算 法的诸进程的执行不必相互等待的一类并行算法。
定义5:分布并行算法(distributed algorithm):将 同一任务分解为若干个子任务,使之分布在由通信 链路连接的多个节点上协同完成运算的算法。
分布式算法的执行时间,在很大程度上受通信开 销的影响。
与所需的处理器数 p(n) 之积,即
2018/11/4
c(n) = t(n) * p(n)
13
例:(1)设f(n)=n2/2, g(n)=307n2,则
因此,f(n)=n2/2与g(n)=307n2是同阶的。
n
lim(n 2 / 2) /(307 n 2 ) 1 / 614
(2)设f(n)=lg n,g(n)=n,则
第四章
并行算法的设计基础
Байду номын сангаас
• 并行计算相关的研究分支
1. 并行计算机体系结构 1. 并行计算机体系结构 2. 并行计算的性能评价 并行计算的性能评价 3. 并行算法 并行算法
4. 并行程序设计
一、并行算法相关的基本概念及表示 二、介绍几种并行计算模型
2018/11/4 1
一、并行算法相关的基本概念及表示
2018/11/4 6
定义7:随机算法( randomized algorithm, probabilistic algorithm )计算步骤具有随机 性的算法。在算法的某一步或某些步上,可以在 指定范围内随机地选择下一个演算步的走向。 如果方法得当,可比一般算法更快地得出结果, 并且能以较高的概率提供正确的结果。
入规模为 n 的问题,在给定的并行计算模型之下
f(n)= ( g(n) )
我们称 g(n) 为 f(n) 的紧致界。 即:如果 f(n)= ( g(n) )且 f(n)= ( g(n) )
则 f(n)= ( g(n) )
2018/11/4
11
比较两个算法的时间复杂性函数g(n)和f(n)的阶的 方法:
用定义判断 用求极限的方法来加以判断。 若
表示其间的 n (i=1 to n) 次语句序列的执行 可以并行完成
2. for all 语句 for all Pi where 0 i k-1 do : : 2018/11/4 end for
表示 k 个 处理器同时 执行其间的 语句序列 9
3. 并行算法的复杂性度量
令 f(n) 和 g(n) 是定义在自然数集合N 上的两个函数, 定义8: 如果存在两个正数 c 和 n0 ,使得对于所有 的 n n0 均有f(n) c g(n) ,则标记为:
1. 基本概念
2. 并行算法的表示 3. 并行算法的复杂性度量 4. 并行算法的同步与通信
2018/11/4
2
1. 基本概念
定义1:算法:在有限步骤内求解某一特定问题的 一组无二义性的规则。 定义2:并行算法是由一些独立的、可以并行运行 的计算模块(进程)构成,模块(进程)之间 能相互作用和协调,以完成对一个给定问题的 求解。
f(n)= ( g(n) )
我们称 g(n) 为 f(n) 的上界。
定义9:
c 和 n0 ,使得对于所有 的 n n0 均有f(n) c g(n) ,则标记为:
如果存在两个正数
f(n)= ( g(n) )
我们称 g(n) 为 f(n) 的下界。
2018/11/4 10
定义10:如果存在正数 c1、c2 和 n0 ,使得对于 所有的 n n0 均有c1 g(n) f(n) c2 g(n) , 则标记为
• 并行算法的运行时间 t(n) :对于输入规模为 n
的问题,在给定的并行计算模型之下求解问题所 需的时间,也称为时间复杂性 ( time complexity )。 运行时间 = 计算时间 + 通信时间 • 处理器数p(n):表示对给定的问题规模 n,并行 算法所用的处理器的个数。
• 并行算法的成本c(n):并行算法的运行时间 t(n)
2018/11/4 5
定义6:确定算法 (deterministic algorithm):每 个运算步骤上均确定唯一操作的算法。如线性方 程组求解的算法。
不确定算法 (non-deterministic algorithm): 在问题求解的搜索过程中,提出多种可供选择的 操作,它们中的任一种都有希望获得问题的解答, 但都不能肯定解出,有时甚至不能确定这些操作 中哪一种求解的可能性更大些。对此,只能选择 其中任意一种搜索下去。这种搜索方法称为不确 定算法。
lim(log n / n) lim ln n /(n ln 2) (1 / ln 2) lim(ln n / n) 0
n n n
所以,f(n)=lg n比g(n)=n低阶。
2018/11/4
14
定义11:一个并行算法最坏情况下的时间复杂性 ( worst-case time-complexity ) :对于所有输
2018/11/4
7
2. 并行算法的表示
• 表示算法的要求
– 无二义性 – 力图直观、易懂 – 不苛求严格的语法格式
• 一般的串行算法常用类Pascal、类Algol 表示
2018/11/4
8
并行算法常引入以下两条并行语句:
1. par-do语句 for i=1 to n par-do : : end for
2018/11/4
3
根据算法的不同特征,可以对并行算法进 行不同的分类: –SIMD算法和MIMD算法
–同步算法和异步算法
–数值计算算法和非数值计算算法
–共享存储算法和分布存储算法
2018/11/4
4
定义3:同步算法(synchronized algorithm):是指算 法的诸进程的执行必须相互等待的一类并行算法。 SIMD算法是同步算法中的一种特例。