中国科学技术大学计算机科学与技术系 国家高性能计算中心(合肥) 2004年12月

Slides:



Advertisements
Similar presentations
—— 海淀区高三化学《考试说明》解读 2015 年 1 月 29 日 学习《考试说明》 备考理综化学.
Advertisements

青蘋果的代價 參考資料 : 國中性教育教學輔助媒體 (Power Point) 教師手冊. 影片欣賞 -- 愛的晚霞 單純的阿霞人生第一次的愛情,卻是帶來身心嚴重 的傷害,阿霞要如何面對感染愛滋後的生活 …
小学科学中的化学 武威十九中 刘玉香.
營建工程空氣污染防制設施管理辦法 (條文重點與記點說明)
与优秀的人在一起
營利事業所得稅查核準則 相關概念介紹 南區國稅局 新營分局 林俊標 各位學員大家好:
探索确定位置的方法 王积羽.
307暑假作業 自選部份,各項的範例!.
姓名:劉芷瑄 班級:J201 座號:39號 ISBN:957-33-1963-2
都更條例修法到底在修啥?跟我們有什麼關係?
情緒與壓力管理─背部舒緩 指導老師:彭易璟 第六組組員:會資三乙 499A0047 謝宛霖 會資三乙 499A0019 吳汶諭
102年10月17日 臺北市公共運輸處 報告人:陳榮明處長
走過光陰 ── 眷村 三平 2號 何苡瑄.
指導老師:楊淑娥 組別:第一組 成員:劉怡萱4a0i0066 吳珮瑜4a0i0070 林秋如4a0i0075 陳婉婷4a0i0076
組員:4A140013張瓊云 4A1I0039石宜芬 4A1I0909許峻綱 指導老師:王立杰老師
學 號:997I0010、997I0024 組 員:洪韋鈴、王婷婷 日 期: 指導老師:王立杰 老師
第一章 行列式 第五节 Cramer定理 设含有n 个未知量的n个方程构成的线性方程组为 (Ⅰ) 由未知数的系数组成的n阶行列式
公司法(六) 股份有限公司 1.
指導老師:陳韻如 班級:幼保二甲 姓名:林靜宜 學號:4A0I0033
《数据结构》课程简介 李武军 南京大学计算机科学与技术系 2016年秋季.
强连通分量 无向图 1、任意两顶点连通称该图为连通图 2、否则将其中的极大连通子图称为连通分量 A D C B E 有向图
知识点7---矩阵初等变换的应用 1. 求矩阵的秩 2. 求矩阵的逆 3. 解矩阵方程.
SOA – Experiment 3: Web Services Composition Challenge
走进编程 程序的顺序结构(二).
元素替换法 ——行列式按行(列)展开(推论)
中国科学技术大学计算机科学与技术系 国家高性能计算中心(合肥) 2004年12月
并行计算 Parallel Computing
并行计算 Parallel Computing
中国科学技术大学计算机科学与技术系 国家高性能计算中心(合肥) 2004年12月
习题解答.
中国科学技术大学计算机科学与技术系 国家高性能计算中心(合肥) 2004年12月
第4章 非线性规划 一维搜索方法 2011年11月.
动态规划(Dynamic Programming)
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
網路遊戲版 幸福農場168號.
无向树和根树.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
专题作业.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
第四章习题.
顺序表的删除.
作业情况 已交作业人数:140人 凡是自己没有交过作业的同学,课后留下,有话要说。 2. 文件名范例: 姓名:王树武 wshw_1.c
浙江大学医学院公共技术平台 实验仪器预约管理系统系列培训 医学院公共技术平台 丁巧灵
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
第二章 Java基本语法 讲师:复凡.
中国科学技术大学计算机科学与技术系 国家高性能计算中心(合肥) 2004年12月
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
小学5.
第4章 Excel电子表格制作软件 4.4 函数(一).
iSIGHT 基本培训 使用 Excel的栅栏问题
并行计算 Parallel Computing
第七、八次实验要求.
第二章 药物的鉴别试验 第一节、药物鉴别试验的定义与目的
§2 方阵的特征值与特征向量.
生 物 信 息 学 Bioinformatics 巩晶 癌症研究中心 山东大学 医学院
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
主讲教师 欧阳丹彤 吉林大学计算机科学与技术学院
基于列存储的RDF数据管理 朱敏
主讲人: 吕敏 { } Spring 2012 ,USTC 算法基础 主讲人: 吕敏 { } Spring 2012 ,USTC.
热力学与统计物理 金晓峰 复旦大学物理系 /7/27.
臺中市龍山國小 校園常見瓢蟲辨識   瓢蟲屬於鞘翅目瓢蟲科。目前世界上約有5000多種瓢蟲,台灣地區約有80種以上,其中能捕食有害生物的瓢蟲約七十種之多。瓢蟲因為捕食有害生物為主食,所以又稱為『活農藥』。
临床试验管理平台操作指南 (申办方用) 浙江省人民医院机构办.
插入排序的正确性证明 以及各种改进方法.
概率论与数理统计.
§4.5 最大公因式的矩阵求法( Ⅱ ).
其解亦可表为向量形式.
离散数学─归纳与递归 南京大学计算机科学与技术系
第二次课后作业答案 函数式编程和逻辑式编程
最小生成树 最优二叉树.
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
Presentation transcript:

中国科学技术大学计算机科学与技术系 国家高性能计算中心(合肥) 2004年12月 并 行 计 算 中国科学技术大学计算机科学与技术系 国家高性能计算中心(合肥) 2004年12月

第二篇 并行算法的设计 第四章 并行算法的设计基础 第五章 并行算法的一般设计方法 第六章 并行算法的基本设计技术 第七章 并行算法的一般设计过程

第六章 并行算法的基本设计技术 6. 1 划分设计技术 6. 2 分治设计技术 6. 3 平衡树设计技术 6. 4 倍增设计技术 6 第六章 并行算法的基本设计技术 6.1 划分设计技术 6.2 分治设计技术 6.3 平衡树设计技术 6.4 倍增设计技术 6.5 流水线设计技术

6.1 划分设计技术 6.1.1 均匀划分技术 6.1.2 方根划分技术 6.1.3 对数划分技术 6.1.4 功能划分技术 6.1 划分设计技术 6.1.1 均匀划分技术 6.1.2 方根划分技术 6.1.3 对数划分技术 6.1.4 功能划分技术

均匀划分技术 划分方法 示例:MIMD-SM模型上的PSRS排序 begin n个元素A[1..n]分成p组,每组A[(i-1)n/p+1..in/p],i=1~p 示例:MIMD-SM模型上的PSRS排序 begin (1)均匀划分:将n个元素A[1..n]均匀划分成p段,每个pi处理 A[(i-1)n/p+1..in/p] (2)局部排序:pi调用串行排序算法对A[(i-1)n/p+1..in/p]排序 (3)选取样本:pi从其有序子序列A[(i-1)n/p+1..in/p]中选取p个样本元素 (4)样本排序:用一台处理器对p2个样本元素进行串行排序 (5)选择主元:用一台处理器从排好序的样本序列中选取p-1个主元,并 播送给其他pi (6)主元划分:pi按主元将有序段A[(i-1)n/p+1..in/p]划分成p段 (7)全局交换:各处理器将其有序段按段号交换到对应的处理器中 (8)归并排序:各处理器对接收到的元素进行归并排序 end. 国家高性能计算中心(合肥) 2019/4/18

均匀划分技术 例6.1 PSRS排序过程。N=27,p=3,PSRS排序如下: 国家高性能计算中心(合肥) 2019/4/18

6.1 划分设计技术 6.1.1 均匀划分技术 6.1.2 方根划分技术 6.1.3 对数划分技术 6.1.4 功能划分技术 6.1 划分设计技术 6.1.1 均匀划分技术 6.1.2 方根划分技术 6.1.3 对数划分技术 6.1.4 功能划分技术

方根划分技术 划分方法 示例:SIMD-CREW模型上的 Valiant归并(1975年发表) n个元素A[1..n]分成A[(i-1)n^(1/2)+1..in^(1/2)],i=1~n^(1/2) 示例:SIMD-CREW模型上的 Valiant归并(1975年发表) //有序组A[1..p]、B[1..q], (假设p<=q), 处理器数 begin (1)方根划分: A,B分别按 ; (2)段间比较: A划分元与B划分元比较(至多 对), 确定A划分元应插入B中的区段; (3)段内比较: A划分元与B相应段内元素进行比较,并插入适当的位置; (4)递归归并: B按插入的A划分元重新分段,与A相应段(A除去原划分元) 构成了成对的段组,对每对段组递归执行(1)~(3),直至A 组为0时,递归结束; 各组仍按 分配处理器; end. 国家高性能计算中心(合肥) 2019/4/18

方根划分技术 国家高性能计算中心(合肥) 2019/4/18

方根划分技术 国家高性能计算中心(合肥) 2019/4/18

6.1 划分设计技术 6.1.1 均匀划分技术 6.1.2 方根划分技术 6.1.3 对数划分技术 6.1.4 功能划分技术 6.1 划分设计技术 6.1.1 均匀划分技术 6.1.2 方根划分技术 6.1.3 对数划分技术 6.1.4 功能划分技术

对数划分技术 划分方法 示例:PRAM-CREW上的对数划分并行归并排序 n个元素A[1..n]分成A[(i-1)logn+1..ilogn],i=1~n/logn 示例:PRAM-CREW上的对数划分并行归并排序 (1)归并过程: 设有序组A[1..n]和B[1..m] j[i]=rank(bilogm:A)为bilogm在A中的位序,即A中小于等于bilogm的元素个数 (2)例:A=(4,6,7,10,12,15,18,20), B=(3,9,16,21) n=8, m=4 =>logm=log4=2 => j[1]=rank(blogm:A)=rank(b2:A)=rank(9:A)=3, j[2]=…=8 B0: 3, 9 B1: 16, 21 A0: 4, 6, 7 A1: 10, 12, 15, 18, 20 A和B归并化为(A0, B0)和(A1, B1)的归并 国家高性能计算中心(合肥) 2019/4/18

6.1 划分设计技术 6.1.1 均匀划分技术 6.1.2 方根划分技术 6.1.3 对数划分技术 6.1.4 功能划分技术 6.1 划分设计技术 6.1.1 均匀划分技术 6.1.2 方根划分技术 6.1.3 对数划分技术 6.1.4 功能划分技术

功能划分技术 划分方法 示例:(m, n)选择问题(求出n个元素中前m个最小者) 功能划分:要求每组元素个数必须大于m; n个元素A[1..n]分成等长的p组,每组满足某种特性。 示例:(m, n)选择问题(求出n个元素中前m个最小者) 功能划分:要求每组元素个数必须大于m; 算法:p148算法6.4 输入:A=(a1,…,an); 输出:前m个最小者; Begin (1) 功能划分:将A划分成g=n/m组,每组含m个元素; (2) 局部排序:使用Batcher排序网络将各组并行进行排序; (3) 两两比较:将所排序的各组两两进行比较,从而形成MIN序列; (4) 排序-比较:对各个MIN序列,重复执行第(2)和第(3)步,直至 选出m个最小者。 End 国家高性能计算中心(合肥) 2019/4/18

功能划分技术 国家高性能计算中心(合肥) 2019/4/18

第六章 并行算法的基本设计技术 6. 1 划分设计技术 6. 2 分治设计技术 6. 3 平衡树设计技术 6. 4 倍增设计技术 6 第六章 并行算法的基本设计技术 6.1 划分设计技术 6.2 分治设计技术 6.3 平衡树设计技术 6.4 倍增设计技术 6.5 流水线设计技术

6.2 分治设计技术 6.2.1 并行分治设计步骤 6.2.2 双调归并网络 6.2 分治设计技术 6.2.1 并行分治设计步骤 6.2.2 双调归并网络

并行分治设计步骤 将输入划分成若干个规模相等的子问题; 同时(并行地)递归求解这些子问题; 并行地归并子问题的解,直至得到原问题的解。 国家高性能计算中心(合肥) 2019/4/18

6.2 分治设计技术 6.2.1 并行分治设计步骤 6.2.2 双调归并网络 6.2 分治设计技术 6.2.1 并行分治设计步骤 6.2.2 双调归并网络

双调归并网络 双调序列(p149定义6.2) Batcher定理 (8,7,6,4,2,0,1,3,5) (1,2,3,4,5,6,7,8) (1,3,5,7,8,6,4,2,0) (8,7,6,4,2,0,1,3,5) (1,2,3,4,5,6,7,8) 以上都是双调序列 Batcher定理 给定双调序列(x0,x1,…,xn-1), 对于si=min{xi,xi+n/2}和 li=max{xi,xi+n/2}, 则小序列(s0,s1,…,sn-1)和大序列(l0,l1,…,ln-1) 仍是双调序列 国家高性能计算中心(合肥) 2019/4/18

双调归并网络 (4,4)双调归并网络 国家高性能计算中心(合肥) 2019/4/18

双调归并网络 Batcher双调归并算法 输入:双调序列X=(x0,x1,…,xn-1) 输出:非降有序序列Y=(y0,y1,…,yn-1) Procedure BITONIC_MERG(x) Begin (1)for i=0 to n/2-1 par-do (1.1) si=min{xi,xi+n/2} (1.2) li=max{xi,xi+n/2} end for (2)Recursive Call: (2.1)BITONIC_MERG(MIN=(s0,…,sn/2-1)) (2.2)BITONIC_MERG(MIN=(l0,…, ln/2-1)) (3)output sequence MIN followed by sequence MAX End 国家高性能计算中心(合肥) 2019/4/18

第六章 并行算法的基本设计技术 6. 1 划分设计技术 6. 2 分治设计技术 6. 3 平衡树设计技术 6. 4 倍增设计技术 6 第六章 并行算法的基本设计技术 6.1 划分设计技术 6.2 分治设计技术 6.3 平衡树设计技术 6.4 倍增设计技术 6.5 流水线设计技术

6.3 平衡树设计技术 6.3.1 设计思想 6.3.2 求最大值 6.3.3 计算前缀和 6.3 平衡树设计技术 6.3.1 设计思想 6.3.2 求最大值 6.3.3 计算前缀和

平衡树设计技术 设计思想 示例 以树的叶结点为输入,中间结点为处理结点,由叶向根或由根向叶逐层进行并行处理。 求最大值 计算前缀和 国家高性能计算中心(合肥) 2019/4/18

6.3 平衡树设计技术 6.3.1 设计思想 6.3.2 求最大值 6.3.3 计算前缀和 6.3 平衡树设计技术 6.3.1 设计思想 6.3.2 求最大值 6.3.3 计算前缀和

求最大值 算法6.8: SIMD-TC(SM)上求最大值算法 Begin 图示 时间分析 end t(n)=m×O(1)=O(logn) for k=m-1 to 0 do for j=2k to 2k+1-1 par-do A[j]=max{A[2j], A[2j+1]} end for end 图示 时间分析 t(n)=m×O(1)=O(logn) p(n)=n/2 A1 An/4 An/2-1 An/2 An/2+1 An-2 An-1 An An+1 An+2 An+3 A2n-4 A2n-3 A2n-2 A2n-1 K=m-1 K=m-2 K=0 P1 P2 Pn/2-1 Pn/2 国家高性能计算中心(合肥) 2019/4/18

6.3 平衡树设计技术 6.3.1 设计思想 6.3.2 求最大值 6.3.3 计算前缀和 6.3 平衡树设计技术 6.3.1 设计思想 6.3.2 求最大值 6.3.3 计算前缀和

计算前缀和 问题定义 串行算法: Si=Si-1*xi 计算时间为 O(n) 并行算法:p154算法6.9 SIMD-TC上非递归算法 n个元素{x1,x2,…,xn},前缀和是n个部分和: Si=x1*x2*…*xi, 1≤i≤n 这里*可以是+或× 串行算法: Si=Si-1*xi 计算时间为 O(n) 并行算法:p154算法6.9 SIMD-TC上非递归算法 令A[i]=xi, i=1~n, B[h,j]和C[h,j]为辅助数组(h=0~logn, j=1~n/2h) 数组B记录由叶到根正向遍历树中各结点的信息(求和) 数组C记录由根到叶反向遍历树中各结点的信息(播送前缀和) 国家高性能计算中心(合肥) 2019/4/18

计算前缀和 例:n=8, p=8, C01~C08为前缀和 国家高性能计算中心(合肥) 2019/4/18

第六章 并行算法的基本设计技术 6. 1 划分设计技术 6. 2 分治设计技术 6. 3 平衡树设计技术 6. 4 倍增设计技术 6 第六章 并行算法的基本设计技术 6.1 划分设计技术 6.2 分治设计技术 6.3 平衡树设计技术 6.4 倍增设计技术 6.5 流水线设计技术

6.4 倍增设计技术 6.4.1 设计思想 6.4.2 表序问题 6.4.3 求森林的根

倍增设计技术 设计思想 示例 又称指针跳跃(pointer jumping)技术,特别适合于处理链表或有向树之类的数据结构; 当递归调用时,所要处理数据之间的距离逐步加倍,经过k步后即可完成距离为2k的所有数据的计算。 示例 表序问题 求森林的根 国家高性能计算中心(合肥) 2019/4/18

6.4 倍增设计技术 6.4.1 设计思想 6.4.2 表序问题 6.4.3 求森林的根

表序问题 问题描述 示例:n=7 n个元素的列表L,求出每个元素在L 中的次第号(秩或位序或rank(k)), rank(k)可视为元素k至表尾的距离; 示例:n=7 (1)p[a]=b, p[b]=c, p[c]=d, p[d]=e, p[e]=f, p[f]=g, p[g]=g r[a]=r[b]=r[c]=r[d]=r[e]=r[f]=1, r[g]=0 (2)p[a]=c, p[b]=d, p[c]=e, p[d]=f, p[e]=p[f]=p[g]=g r[a]=r[b]=r[c]=r[d]=r[e]=2, r[f]=1, r[g]=0 (3)p[a]=e, p[b]=f, p[c]=p[d]=p[e]=p[f]=p[g]=g r[a]=4, r[b]=4, r[c]=4, r[d]=3, r[e]=2, r[f]=1, r[g]=0 (4)p[a]=p[b]=p[c]=p[d]=p[e]=p[f]=p[g]=g r[a]=6, r[b]=5, r[c]=4, r[d]=3, r[e]=2, r[f]=1, r[g]=0 国家高性能计算中心(合肥) 2019/4/18

表序问题 算法:P155算法6.10 (2)执行 次 //O(logn) (2.1)对k并行地做 //O(1) (1)并行做:初始化p[k]和distance[k] //O(1) (2)执行 次 //O(logn) (2.1)对k并行地做 //O(1) 如果k的后继不等于k的后继之后继,则 (i) distance[k]= distance[k]+ distance[p[k]] (ii) p[k]=p[p[k]] (2.2)对k并行地做 rank[k]=distance[k] //O(1) 运行时间:t(n)=O(logn) p(n)=n 国家高性能计算中心(合肥) 2019/4/18

6.4 倍增设计技术 6.4.1 设计思想 6.4.2 表序问题 6.4.3 求森林的根

求森林的根 问题描述 一组有向树F中, 如果<i, j>是F中的一条弧,则p[i]=j(即j是i的双亲);若i为根,则p[i]=i。求每个结点j(j=1~n)的树根s[j]. 示例 初始时 P[1]=p[2]=5 p[3]=p[4]=p[5]=6 P[6]=p[7]=8 p[8]=8 P[9]=10 p[10]=11 p[11]=12 p[12]=13 p[13]=13 s[i]=p[i] 国家高性能计算中心(合肥) 2019/4/18

求森林的根 示例 算法:P157算法6.11 运行时间:t(n)=O(logn) W(n)=O(nlogn) 第一次迭代后 第二次迭代后 第一次迭代后 第二次迭代后 算法:P157算法6.11 运行时间:t(n)=O(logn) W(n)=O(nlogn) 国家高性能计算中心(合肥) 2019/4/18

第六章 并行算法的基本设计技术 6. 1 划分设计技术 6. 2 分治设计技术 6. 3 平衡树设计技术 6. 4 倍增设计技术 6 第六章 并行算法的基本设计技术 6.1 划分设计技术 6.2 分治设计技术 6.3 平衡树设计技术 6.4 倍增设计技术 6.5 流水线设计技术

6.5 流水线设计技术 6.5.1 设计思想 6.5.2 5-point DFT的计算

流水线设计技术 设计思想 评注 将算法流程划分成p个前后衔接的任务片断,每个任务片断的输出作为下一个任务片断的输入; 所有任务片断按同样的速率产生出结果。 评注 流水线技术是一种广泛应用在并行处理中的技术; 脉动算法(Systolic algorithm)是其中一种流水线技术; 国家高性能计算中心(合肥) 2019/4/18

6.5 流水线设计技术 6.5.1 设计思想 6.5.2 5-point DFT的计算

5-point DFT的计算 问题描述 5-point DFT的计算。应用秦九韶(Horner)法则, 国家高性能计算中心(合肥) 2019/4/18

5-point DFT的计算 示例:p(n)=n-1, t(n)=2n-2=O(n) 国家高性能计算中心(合肥) 2019/4/18