Download presentation
Presentation is loading. Please wait.
1
中国科学技术大学计算机科学与技术系 国家高性能计算中心(合肥) 2004年12月
并 行 计 算 中国科学技术大学计算机科学与技术系 国家高性能计算中心(合肥) 2004年12月
2
第二篇 并行算法的设计 第四章 并行算法的设计基础 第五章 并行算法的一般设计方法 第六章 并行算法的基本设计技术 第七章 并行算法的一般设计过程
3
第五章 并行算法的一般设计方法 5.1 串行算法的直接并行化 5.2 从问题描述开始设计并行算法 5.3 借用已有算法求解新问题
第五章 并行算法的一般设计方法 串行算法的直接并行化 从问题描述开始设计并行算法 借用已有算法求解新问题
4
5.1串行算法的直接并行化 5.1.1 设计方法描述 5.1.2 快排序算法的并行化
5.1串行算法的直接并行化 设计方法描述 快排序算法的并行化
5
设计方法的描述 方法描述 评注 发掘和利用现有串行算法中的并行性,直接将串行算法改造为并行算法。
由串行算法直接并行化的方法是并行算法设计的最常用方法之一; 不是所有的串行算法都可以直接并行化的; 一个好的串行算法并不能并行化为一个好的并行算法; 许多数值串行算法可以并行化为有效的数值并行算法。 国家高性能计算中心(合肥) 2019/4/23
6
5.1串行算法的直接并行化 5.1.1 设计方法描述 5.1.2 快排序算法的并行化
5.1串行算法的直接并行化 设计方法描述 快排序算法的并行化
7
快排序算法的并行化 算法5.2 PRAM-CRCW上的快排序二叉树构造算法 输入:序列(A1,…,An)和n个处理器
输出:供排序用的一棵二叉排序树 Begin (1)for each processor i do (2)repeat for each processor i<>root do (1.1)root=i if (Ai<Afi)∨(Ai=Afi∧i<fi) then (1.2)fi=root (2.1)LCfi=i (1.3)LCi=RCi=n (2.2)if i=LCfi then exit else fi=LCfi endif end for else (2.3)RCfi=i (2.4)if i=RCfi then exit else fi=RCfi endif endif end repeat End 国家高性能计算中心(合肥) 2019/4/23
8
第五章 并行算法的一般设计方法 5.1 串行算法的直接并行化 5.2 从问题描述开始设计并行算法 5.3 借用已有算法求解新问题
第五章 并行算法的一般设计方法 串行算法的直接并行化 从问题描述开始设计并行算法 借用已有算法求解新问题
9
从问题描述开始设计并行算法 方法描述 评注 从问题本身描述出发,不考虑相应的串行算法,设计一个全新的并行算法。
挖掘问题的固有特性与并行的关系; 设计全新的并行算法是一个挑战性和创造性的工作; 利用串的周期性的PRAM-CRCW算法是一个很好的范例; 国家高性能计算中心(合肥) 2019/4/23
10
第五章 并行算法的一般设计方法 5.1 串行算法的直接并行化 5.2 从问题描述开始设计并行算法 5.3 借用已有算法求解新问题
第五章 并行算法的一般设计方法 串行算法的直接并行化 从问题描述开始设计并行算法 借用已有算法求解新问题
11
5.3 借用已有算法求解新问题 5.3.1 设计方法描述 5.3.2 利用矩阵乘法求所有点对间最短路径
5.3 借用已有算法求解新问题 设计方法描述 利用矩阵乘法求所有点对间最短路径
12
设计方法的描述 方法描述 评注 找出求解问题和某个已解决问题之间的联系; 改造或利用已知算法应用到求解问题上。 这是一项创造性的工作;
使用矩阵乘法算法求解所有点对间最短路径是一个很好的范例。 国家高性能计算中心(合肥) 2019/4/23
13
5.3 借用已有算法求解新问题 5.3.1 设计方法描述 5.3.2 利用矩阵乘法求所有点对间最短路径
5.3 借用已有算法求解新问题 设计方法描述 利用矩阵乘法求所有点对间最短路径
14
利用矩阵乘法求所有点对间最短路径 计算原理 SIMD-CC上的并行算法:p139算法5.5
有向图G=(V,E),边权矩阵W=(wij)n×n,求最短路径长度矩阵D=(dij)n×n,dij为vi到vj的最短路径长度。假定图中无负权有向回路,记d(k)ij为vi到vj至多有k-1个中间结点的最短路径长,Dk=(d(k)ij)n×n,则 (1) d(1)ij=wij 当 i<>j (如果vi到vj之间无边存在记为∞) d(1)ij= 当 i=j (2) 无负权回路 dij=d(n-1)ij (3) 利用最优性原理:d(k)ij=min1≤l≤n{d(k/2)il+d(k/2)lj} 视:”+” “×”, “min” “∑”,则上式变为 d(k)ij=∑1≤l≤n{d(k/2)il×d(k/2)lj} (4) 应用矩阵乘法:D1 D2 D4 … D2logn (= Dn) SIMD-CC上的并行算法:p139算法5.5 国家高性能计算中心(合肥) 2019/4/23
Similar presentations