并行算法的设计与分析》(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)进程1: 1 + 3 + 2 + 2 + 3 + 2 + 1=14
2.1步 (8与 8) (8与 6) (8与6) (8与 9) (8与 7) 2.3步
2.2步
(3)进程2: 1+3+3+3+3+3+1=17
类似地,进程3(18),进程4(13),进程5(15)
P1: 进程1进程3
14 32
进程2 进程4进程5 P2:
(2)排序树的树根为root,左孩子为Lc[root],右孩子为Rc[root]
(3)SM变量root, Lc[1..n], Rc[1..n], 及待排序数组A[1..n]
(4)n个处理器Pi存有A[i]
(5)得到二叉排序树后,只要中序遍历即可得到排序序列
(6)二叉排序树如下:
A[root]
A[Lc[root]]
17 30 45
时间 时间
2020/12/3
精选PPT
Parallel Algorithms 6 / Ch5
5.1.4 异步枚举排序算法的时间分析
1.假定:第(1)步之前无任何进程启动;
可在常数时间内解决读冲突;
不考虑进程间的调度时间
2.MIMD-异步枚举排序算法时间
wk.baidu.comn个进程:每个进程时间O(n)
5.2.1 SISD上的快排序算法
2020/12/3
Procedure QUICKSORT(A, q, r)
//输入无序序列(Aq,…,Ar);输出有序序列(Aq,…,Ar) begin
if q<r then
(1)x= Aq (2)s=q
(3)for i=q+1 to r do
if Ai≤x then (i)s=s+1
create process i
else if (X[i]=X[j] and i>j) then k=k+1
end for
end if
(2)process i:
(2.3)T[K+1]=X[i]
(2.1)k=0
end
注:算法生成n个进程,第i个进程计算X中比xi小的元素数k,将xi置于SM 数组T[k+1],各进程间无通讯要求,可互相独立完成。
5.1.1 MIMD异步算法的基本框架
①开始时所有处理器空闲,用某个开始算法, 产生一些过程或进程(算法的一段),进入进程 等待队列;
②若有空闲的机器,分配进程;进程执行完之后, 机器进入等待;
③若无等待进程,机器空闲,排队进入等待状态。
注:SIMD每个时刻各处理器执行的操作相同
2020/12/3
t(n)
n p
O(n)
O(n2 p
)
p(n) pc(n) O(n2)
2020/12/3
精选PPT
Parallel Algorithms 7 / Ch5
主要内容
5.1 MIMD-CREW模型上的异步枚举排序算法 5.2 MIMD-TC模型上的异步快排序算法 5.3 分布式k-选择算法
2020/12/3
精选PPT
Parallel Algorithms 8 / Ch5
5.2 MIMD-TC模型上的异步快排序算法
5.2.1 SISD上的快排序算法 5.2.2 SIMD-CRCW上的快排序算法 5.2.3 MIMD-TC模型上的异步快排序算法
2020/12/3
精选PPT
Parallel Algorithms 9 / Ch5
begin
(1)for each Pi par-do (1.1)root=i
//Pi将处理器号i并发写入SM变量root,root的值是不确定的
(1.2)fi=root (1.3)Lci=Rci=n+1 end for
//Pi并发读入root到LM变量fi中 //Lci和Rci初始化,使得不指向任何处理器
2020/12/3
精选PPT
Parallel Algorithms 2 / Ch5
5.1 MIMD-CREW模型上的异步枚举排序算法
5.1.1 MIMD异步算法的基本框架 5.1.2 异步枚举排序算法 5.1.3 示例 5.1.4 时间分析
2020/12/3
精选PPT
Parallel Algorithms 3 / Ch5
2020/12/3
精选PPT
Parallel Algorithms 5 / Ch5
5.1.3 异步枚举排序算法示例
输入X={8,6,6,7,9},p(n)=2,P1生成5个进程,设进程调度按
FIFO,P1与P2首先执行进程1和进程2
(1)进程内的运算(假定各操作时间相同,X数组已在本地)
k=0, X(i)>X[j], X(i)=X[j], i>j, k=k+1, T[k+1]=X[i]
Parallel Algorithms
Chapter 5 Sorting and Selecting in Asynchronous
2020/12/3
精选PPT
Parallel Algorithms 1 / Ch5
主要内容
5.1 MIMD-CREW模型上的异步枚举排序算法 5.2 MIMD-TC模型上的异步快排序算法 5.3 分布式k-选择算法
精选PPT
Parallel Algorithms 4 / Ch5
5.1.2 异步枚举排序算法
1.输入待排序数组X[1..n],输出已排序数组T[1..n]。
2.算法:MIMD-CREW枚举排序
begin
(2.2)for j=1 to n do
(1)for i=1 to n do
if X[i]>X[j] then k=k+1
(ii)swap(As, Ai) end if
(4)swap(Aq, As) (5)QUICKSORT(A, q, s)
(6)QUICKSORT(A, s+1, r)
end
精选PPT
Parallel Algorithms 10 / Ch5
5.2.2 SIMD-CRCW上的快排序算法
1.算法说明
(1)SIMD-CRCW上的快排序算法的核心是构造二叉排序树。
A[Rc[root]]
A[Lc[Lc[root]]] A[Rc[Lc[root]]]
2020/12/3
精选PPT
Parallel Algorithms 11 / Ch5
5.2.2 SIMD-CRCW上的快排序算法
2.SIMD-CRCW上的快排序二叉树构造算法
输入:A[1..n]到SM,n个处理器,并且A[i]保存在Pi的LM中 输出:二叉排序树root, Lc[1..n], Rc[1..n]在SM中