- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.4MIMD共享存储模型的并行算法讲述
PAGE
PAGE 21
MIMD共享存储模型的并行算法
异步枚举排序算法
枚举排序(Enumeration Sort)是一种最简单的排序算法,通常也称为秩排序(Rank Sort)。对于基于枚举比较原理的异步排序算法,为了排序n个数的序列S= (x1,x2,…,xn) ,算法要生成n个进程。进程i (1≤i≤n)将xi与S中其余元素进行比较,并且使用局部变量k及下所有小于xi的元素的数目。当所有的比较都完成时,就将xi置入排序序列中的k+1的位置上,因此每个进程都可能彼此独立地执行,而无通信的要求。令X是存在共享存储器中长度为n的数组,开始时放入被排序的序列,当算法结束时,结果置于共享存储器中的T数组内,变量i,j,k是算法生成的每个进程的局部变量[1007]。该并行算法的描述如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20算法9.4.1 MIMD-CREW模型上的异步枚举排序算法
输入: S= (x1,x2,…,xn)置于共享存储器的X数组中
输出:已排序的序列置于共享存储器的T数组中
ENUER SORT
{
for(i=1;i=n;i++)
{
Create Process i;
}
Process i:
k=0;
for(j=1;j=n;j++)
{
if(X(i)X(j))
{
k?k+1;
}
elseif((X(i)==X(j) ij))
{
k?k+1;
}
}
T(k+1)=X(i);
}在该并行算法中有,由于每个处理器至多确定数组X中的个元素的位置,而每确定一个元素的位置需O(n)时间,因此对X进行排序需×O(n)时间。
例9_8设S=(8,6,6,9,7),p(n)=2。创建进程的过程中,假定由P1生成5个进程,此后所有的进程均等待开始。假定使用“先进先出”的调度策略。进程1和2分别由P1和P2执行,它们同时计算元素8和6的次第,然后将其分别置于T数组的相应位置上,如图9_19 (a)所示。欲知下一进程有哪一个处理器启动执行,需研究进程1和2的执行时间。假定比较操作和赋值操作大致用相同的时间,当执行X(i)X(j), X(i)=X(j) 和ij以及k=0 ,k=k+1和T(k+1)=X(i)时,进程1和2分别需要14和17各时间步,如图9_19 (b)所示。所以进程3应由P1启动执行,之后3个时间步P2启动执行进程4。这两个进程负责将元素6和9分别置于数组T的相应位置上,此时进程3需要18个时间步,进程4需要13个时间步,所以进程4比进程3早结束。下一进程5由P2启动。之后当进程3执行完后,因无等待的进程,所以P1变为空闲。当进程5执行15个时间步后,元素7便放到数组T的相应位置上。算法总共需要45个时间步。
(a) 数组T的变化过程
(b) 进度调度图9_19 异步枚举排序数组变化及进程调度
单源点最短路径并行算法
假设一有向图各边赋于非负整数,某条路径的长度就是沿该路径所有边权之和。最短路径问题,就是对每一点对i和j,丘照期间任何最短长度的路径。单源点最短路径,即在一个图中寻找从一个指定顶点到所有其他定点的最短路径。
(a) 单处理机上的Moore算法。
在Moore算法中,设源点为s∈V。从s到其他各顶点的最短路径长度用一维数组dist存储。首先置dist(s)=0,dist(v)=∞,其中v≠s,且v∈V。算法使用了一个队列queue。开始执行时队列中仅含有源点s;以后每次只要队列非空,就将排头顶点u从队列中移去,令其作为本次搜索的顶点,然后检查u的所有射出边(u,v)∈E:若dist(u)+w(u,v)dist(v),则此时就找到了一条从s到v的更短路径,置dist(v)=dist(u)+w(u,v);若v不再搜索队列中,则把v加到队尾。如此重复进行,直到整个待搜索队列空时,算法就终止。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30算法9.4.2_1 SISD机器上的单源点最短路径算法
输入:有向加权图G(V,E)的权矩阵
输出:从源s到其余顶点i (i≠s)的最短路径dist(i), i∈V
SISD SHORTEST PATH
{
(1)for(i=1;i=n;i++) /*初始化*/
{
INITIALIZE(i);
}
(2)将s插入队列queue中;
(3)while(队列非空) {SEARCH;}
}
Status SEARCH
{
(3.1)dequeue vertex u; /*从队列中删去顶点u*/
(3.2)for(each edge(u,v)∈E)
{
您可能关注的文档
最近下载
- 武汉市2025届高中毕业生四月调研考试 英语试卷(含答案详解).pdf
- 硕士研究生论文的选题与写作.ppt
- 2019年7月安徽省砀山县事业单位幼儿教师招聘考试《幼儿保教知识与能力》真题试卷(含答案).pdf VIP
- 确保室内空气质量的施工方案与技术措施.pdf
- 中小银行上云趋势研究分析报告 2024.pptx
- 证券从业人员证券投资基金基础知识题库与答案.doc
- 小学家长会英语老师课件.pptx VIP
- 第七单元《红楼梦》薛宝钗、林黛玉人物形象赏析 公开课一等奖创新教案统编版高中语文必修下册.docx VIP
- 最新部编版五年级下册语文单元教材分析(全册) .pdf VIP
- 春季学期《工业控制网络》试题.doc
文档评论(0)