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

Slides:



Advertisements
Similar presentations
台南市立後甲國中 訓導工作簡報 報告人:訓導主任 傅寶源 歡迎蒞臨指導. 訓導處是一個關懷學生生活問題、處理 學生生活事務的溫馨園地,舉凡生活常 規、安全防護、交通安全之教育,民主 法治、社團活動、訓育活動之訓練,衛 生習慣、飲食健康、預防疾病之培養, 體育活動,運動競賽、身心健康之鍛練, 均有專人專責為同學服務。
Advertisements

专题复习 --- 走进名著 亲近经典 读完《鲁滨孙漂流记》这本精彩的小说 后,一个高大的形象时时浮现在我的眼 前,他就是勇敢的探险家、航海家鲁滨 孙。他凭着顽强的毅力,永不放弃的精 神,实现了自己航海的梦想。 我仿佛看到轮船甲板上站着这样的一 个人:他放弃了富裕而又舒适的生活, 厌恶那庸庸碌碌的人生,从而开始了一.
2016/9/41 12 年國教 入學方案宣導資料. 2016/9/42 安全快樂 健康發展 活力多元 創意發展 適性揚才 特色發展 務實致用 卓越發展 學前教育 國中小教育 高級中等教育 大專以上教育 教育促進個人向上發展教育促進個人向上發展 教育是國家最有利的投資教育是國家最有利的投資.
興南國小強化體適能活動 學務處體育組 ( ) 此檔案家長可在學校首頁行政公告下載. 教育部體適能常模 坐姿體前彎 ( 公分 ) 立定跳遠 ( 公分 ) 仰臥起坐 ( 次 ) 心肺適能 ( 分秒 ) 10 歲男 / 女生 PR25 常模標準 19/24 119/110 19/19 347/353.
安徽7班全真模拟 主讲: 杨洁 时间:6月12日晚.
牛熊證簡介.
說 劍 《莊子‧雜篇》─ 第 一 組 賴泊錞 謝孟儒 張維真 羅苡芸
第一节 人口的数量变化.
德 国 鼓 励 生 育 的 宣 传 画.
中小学教育网课程推荐网络课程 小学:剑桥少儿英语 小学数学思维训练 初中:初一、初二、初三强化提高班 人大附中同步课程
控制方长投下的子公司,需要编制合并报表的演示思路
高等代数课件 陇南师范高等专科学校数学系 2008年制作.
温 度 定义: 表示物体冷热程度的物理量。 国际单位:开尔文(K) 单位 常用单位:摄氏度(℃) 原理: 根据液体热胀冷缩的性质制成的。
共通能力科研習計劃書 簡 報 篇.
企业涉税业务基本知识宣传 郑州航空港区国家税务局机场税务分局 王 磊.
營利事業所得稅查核準則 相關概念介紹 南區國稅局 新營分局 林俊標 各位學員大家好:
前进中的山东省昌乐二中.
合能锦城项目招商手册 合能地产
In our classes, all the mobile phones should be switched off !
第一节 二次型的矩阵表示 一、二次型的定义 二、二次型的矩阵表示 三、非退化线性替换 四、矩阵的合同.
大 播 海 直.
第二章 语音 第六节 音变 轻 声1.
温州二中 高三生物 第一轮复习 孟德尔定律之分离定律 考纲要求:1、孟德尔遗传实验的科学方法 Ⅱ 2、基因的分离定律 Ⅱ.
2014年初中生物学业水平抽测分析.
单元4 生物的遗传 第1讲 基因的分离定律.
06学年度工作意见 2006年8月30日.
凉山州2015届高考情况分析 暨2016届高三复习建议 四川省凉山州教育科学研究所 谌业锋.
第一章 互换性与标准化 学院:工程学院 姓名:农机化教研室 电话:
交通事故處置 當事人責任與損害賠償 屏東縣政府警察局交通隊.
忠孝國小自立午餐老師的叮嚀 教師指導手冊.
山东大学资产清查 山东大学 资产清查工作讲解 2016年3月.
學 號:997I0010、997I0024 組 員:洪韋鈴、王婷婷 日 期: 指導老師:王立杰 老師
孟子名言 1. 幼吾幼,以及人之幼。 2.天时不如地利, 。 3. ,威武不能屈。 4.得道者多助, 。 5.穷则独善其身, 。 6.
寡人之于国也 《孟子》.
生物计算 我们该算计谁.
全力以赴的德忠精神 人力资源部王丽玲主任,从员工关系的工作,到招聘工作,再到现在的薪酬工作,不管在哪个岗位,她总是一丝不苟,尽职尽责。
“08高考化学学业水平(必修科目)测试的命题和教学对策研究”
邵阳文化.
公司法(六) 股份有限公司 1.
第一节 孟德尔的豌豆杂交实验.
会考复习四 遗传的基本规律.
电在我们日常生活、现代化社会中的应用: 电 是 什 么?.
第4章 种群和群落 第3节 群落的结构 自主学习案   合作探究案 课后练习案. 第4章 种群和群落 第3节 群落的结构 自主学习案   合作探究案 课后练习案.
实践 课题 周围环境对当代大学生成长的影响 指导老师:王永章 小组成员:陈荣、刘若楠、张红艳、吕雪丹、樊金芳、李惠芬、黄婧
小平故里,魅力广安 小平故里 旅游名城 “吃货”天堂 主讲:张晨曦.
新办纳税人培训 (地税部分) 2015年8月.
成才之路 · 语文 人教版 · 必修2 路漫漫其修远兮 吾将上下而求索.
第 1 章 演算法分析.
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
如何寫工程計畫書 臺北市童軍會考驗委員會 高級考驗營 版.
并行编译简介.
并行计算 Parallel Computing
习题解答.
规范教学,提升质量,迎接评估 ——学校教学管理制度解读
建国以来,大陆对台政策 金亚丽 周莎 黄运娜.
材料二甲 授課教師:王致傑 老師 (學420、分機5305)
電子白板百萬小學堂 本活動建議搭配電子白板 學生最多可分成2~6組(請按組別按鈕) 老師可以視時間多少,來進行活動 每一組要回答十個問題。
工业机器人技术基础及应用 主讲人:顾老师
高職學校本位課程發展 報告人: 鄭慶民.
中国科学技术大学计算机科学与技术系 国家高性能计算中心(合肥) 2004年12月
第1章 绪论(二) 教学目标 理解算法的特性及评价标准 掌握算法时间复杂度和空间复杂度的分析方法 1/
第一章 遗传因子的发现 §1.2 孟德尔的豌豆杂交实验(二) 授 课 人: 钟 承 邦 授课班级:高三(6)班.
前言 招標文件範本 採購作業規定 電子書 諮詢管道 教育訓練課程 臺北市政府投標須知範本 臺北市政府工程、財物及勞務契約範本
会计实务(第七讲) ——固定资产 讲师:天天老师.
第 四 章 迴歸分析應注意之事項.
本节内容 进制运算 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
職業學校群科課程綱要規劃原理及修訂重點 報告人:鄭慶民
第六章 机件的表达方法 在工程实际中,由于机件的结构形状是多种多样的,仅用三视图往往不能完整、清楚、简便地表达出机件的结构和形状。为此,国家标准《机械制图》还规定了机件表达的其他方法。 本章将介绍视图、剖视图、断面图等常用表达方法,并讨论怎样根据机件的结构特点,恰当地选用这些表达方法。
這七個故事很簡短,但她們說的都是一個主題——愛情!真心希望你們每個故事都看一下,不會用很長時間,但保證你能感到那種被震撼的感覺!
臺東縣107學年度國小學障鑑定 ––個測工具研習與派案會議
Presentation transcript:

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

第三篇 并行数值算法 第八章 基本通讯操作 第九章 稠密矩阵运算 第十章 线性方程组的求解 第十一章 快速傅里叶变换 第三篇 并行数值算法 第八章 基本通讯操作 第九章 稠密矩阵运算 第十章 线性方程组的求解 第十一章 快速傅里叶变换

第九章 稠密矩阵运算 9.1 矩阵的划分 9.2 矩阵转置 9.3 矩阵-向量乘法 9.4 矩阵乘法 第九章 稠密矩阵运算 9.1 矩阵的划分 9.2 矩阵转置 9.3 矩阵-向量乘法 9.4 矩阵乘法

9.1 矩阵的划分 9.1.1 带状划分 9.1.2 棋盘划分

带状划分 16×16阶矩阵,p=4 列块带状划分 行循环带状划分 国家高性能计算中心(合肥) 2019/1/3

带状划分 示例:p=3,27× 27矩阵的3种带状划分 国家高性能计算中心(合肥) 2019/1/3

9.1 矩阵的划分 9.1.1 带状划分 9.1.2 棋盘划分

棋盘划分 8×8阶矩阵,p=16 块棋盘划分 循环棋盘划分 国家高性能计算中心(合肥) 2019/1/3

棋盘划分 示例:p=4,16×16矩阵的3种棋盘划分 国家高性能计算中心(合肥) 2019/1/3

第九章 稠密矩阵运算 9.1 矩阵的划分 9.2 矩阵转置 9.3 矩阵-向量乘法 9.4 矩阵乘法 第九章 稠密矩阵运算 9.1 矩阵的划分 9.2 矩阵转置 9.3 矩阵-向量乘法 9.4 矩阵乘法

9.2 矩阵转置 9.2.1 棋盘划分的矩阵转置 9.2.2 带状划分的矩阵转置 9.2 矩阵转置 9.2.1 棋盘划分的矩阵转置 9.2.2 带状划分的矩阵转置

棋盘划分的矩阵转置 网孔连接 情形1: p=n2。 通讯步 转置后 国家高性能计算中心(合肥) 2019/1/3

棋盘划分的矩阵转置 情形2: p<n2。 - 算法: ①按mesh连接进行块转置(不同处理器间) ②进行块内转置(同一处理器内) - 划分: - 算法: ①按mesh连接进行块转置(不同处理器间) ②进行块内转置(同一处理器内) 通讯步 转置后 国家高性能计算中心(合肥) 2019/1/3

棋盘划分的矩阵转置 超立方连接 划分: 算法: ① 运行时间: ②对Aij递归应用①进行转置,直至分块矩阵的元素处于同一处理器; ③进行同一处理器的内部转置。 运行时间: 国家高性能计算中心(合肥) 2019/1/3

棋盘划分的矩阵转置 超立方连接:示例 国家高性能计算中心(合肥) 2019/1/3

9.2 矩阵转置 9.2.1 棋盘划分的矩阵转置 9.2.2 带状划分的矩阵转置 9.2 矩阵转置 9.2.1 棋盘划分的矩阵转置 9.2.2 带状划分的矩阵转置

带状划分的矩阵转置 划分: An×n分成p个(n/p)×n大小的带 算法: ①Pi有p-1个(n/p)×(n/p)大小子块发送到另外p-1个处理器中; ②每个处理器本地交换相应的元素 国家高性能计算中心(合肥) 2019/1/3

第九章 稠密矩阵运算 9.1 矩阵的划分 9.2 矩阵转置 9.3 矩阵-向量乘法 9.4 矩阵乘法 第九章 稠密矩阵运算 9.1 矩阵的划分 9.2 矩阵转置 9.3 矩阵-向量乘法 9.4 矩阵乘法

9.3 矩阵-向量乘法 9.3.1 带状划分的矩阵-向量乘法 9.3.2 棋盘划分的矩阵-向量乘法 9.3 矩阵-向量乘法 9.3.1 带状划分的矩阵-向量乘法 9.3.2 棋盘划分的矩阵-向量乘法

带状划分的矩阵-向量乘法 划分(行带状划分): Pi存放xi和ai,0,ai,1,…,ai,n-1, 并输出yi 算法: 对p=n情形 注: 对p<n情形,算法中Pi要播送X中相应的n/p个分量 (1)超立方连接的计算时间 (2)网孔连接的计算时间 国家高性能计算中心(合肥) 2019/1/3

带状划分的矩阵-向量乘法 示例 国家高性能计算中心(合肥) 2019/1/3

9.3 矩阵-向量乘法 9.3.1 带状划分的矩阵-向量乘法 9.3.2 棋盘划分的矩阵-向量乘法 9.3 矩阵-向量乘法 9.3.1 带状划分的矩阵-向量乘法 9.3.2 棋盘划分的矩阵-向量乘法

棋盘划分的矩阵-向量乘法 划分(块棋盘划分): Pij存放ai,j, xi置入Pi,i中 算法: 对p=n2情形 ①每个Pi,i向Pj,i播送xi(一到多播送); ②按行方向进行乘-加与积累运算,最后一列Pi,n-1收集的结果为yi; 注: 对p<n2情形,p个处理器排成 的二维网孔, 算法中Pi,i向Pj,i播送X中相应的 个分量 (1)网孔连接的计算时间Tp(CT): .X中相应分量置入Pi,i的通讯时间: .按列一到多播送时间: .按行单点积累的时间: 国家高性能计算中心(合肥) 2019/1/3

棋盘划分的矩阵-向量乘法 示例 国家高性能计算中心(合肥) 2019/1/3

带状与棋盘划分比较 以网孔链接为例 棋盘划分要比带状划分快。 网孔上带状划分的运行时间 网孔上棋盘划分的运行时间 国家高性能计算中心(合肥) 2019/1/3

第九章 稠密矩阵运算 9.1 矩阵的划分 9.2 矩阵转置 9.3 矩阵-向量乘法 9.4 矩阵乘法 第九章 稠密矩阵运算 9.1 矩阵的划分 9.2 矩阵转置 9.3 矩阵-向量乘法 9.4 矩阵乘法

9. 4 矩阵乘法 9. 4. 1 简单并行分块乘法 9. 4. 2 Cannon乘法 9. 4. 3 Fox乘法 9. 4 9.4 矩阵乘法 9.4.1 简单并行分块乘法 9.4.2 Cannon乘法 9.4.3 Fox乘法 9.4.4 Systolic乘法 9.4.5 DNS乘法

矩阵乘法符号及定义 j i A B C A中元素的第1下标与B中元素的第2下标相一致(对准) 国家高性能计算中心(合肥) 2019/1/3

矩阵乘法并行实现方法 计算结构:二维阵列 空间对准(元素已加载到阵列中) Cannon’s , Fox’s,DNS 时间对准(元素未加载到阵列中) Systolic A0,0 B0,0 A1,0 B1,0 A2,0 B2,0 A3,0 B3,0 A0,1 B0,1 A1,1 B1,1 A2,1 B2,1 A3,1 B3,1 A0,2 B0,2 A1,2 B1,2 A2,2 B2,2 A3,2 B3,2 A0,3 B0,3 A1,3 B1,3 A2,3 B2,3 A3,3 B3,3 国家高性能计算中心(合肥) 2019/1/3

简单并行分块乘法 分块: A、B和C分成 的方块阵Ai,j、Bi,j和Ci,j, 大小均为 算法: 运行时间 p个处理器编号为 , Pi,j存放Ai,j、Bi,j和Ci,j。 算法: ①通讯:每行处理器进行A矩阵块的多到多播送(得到Ai,k, k=0~ ) 每列处理器进行B矩阵块的多到多播送(得到Bk,j, k=0~ ) ②乘-加运算: Pi,j做 运行时间 (1)超立方连接: ①的时间 ②的时间 国家高性能计算中心(合肥) 2019/1/3

简单并行分块乘法 运行时间 注 (1)超立方连接: (2)二维环绕网孔连接: ①的时间: ②的时间t2=n3/p (1)本算法的缺点是对处理器的存储要求过大 每个处理器有 个块,每块大小为n2/p, 所以需要 , p个处理器共需要 , 是串行算法的 倍 (2)p=n2时,t(n)=O(n), c(n)=O(n3) 国家高性能计算中心(合肥) 2019/1/3

9. 4 矩阵乘法 9. 4. 1 简单并行分块乘法 9. 4. 2 Cannon乘法 9. 4. 3 Fox乘法 9. 4 9.4 矩阵乘法 9.4.1 简单并行分块乘法 9.4.2 Cannon乘法 9.4.3 Fox乘法 9.4.4 Systolic乘法 9.4.5 DNS乘法

Cannon乘法 分块: A、B和C分成 的方块阵Ai,j、Bi,j和Ci,j, 大小 均为p个处理器编号为 , Pi,j存放Ai,j、Bi,j和Ci,j(n > > p) P0,0 P1,0 P2,0 P3,0 P0,1 P1,1 P2,1 P3,1 P0,2 P1,2 P2,2 P3,2 P0,3 P1,3 P2,3 P3,3 国家高性能计算中心(合肥) 2019/1/3

Cannon乘法 算法原理 (非形式描述) 所有块Bi,j(0≤i,j≤ )向上循环移动j步(按列移位); ①所有块Ai,j(0≤i,j≤ )向左循环移动i步(按行移位); 所有块Bi,j(0≤i,j≤ )向上循环移动j步(按列移位); ②所有处理器Pi,j做执行Ai,j和Bi,j的乘-加运算; ③A的每个块向左循环移动一步; B的每个块向上循环移动一步; ④转②执行 次; 国家高性能计算中心(合肥) 2019/1/3

Cannon乘法 示例: A4×4, B4×4, p=16 Initial alignment of A Initial alignment of B 国家高性能计算中心(合肥) 2019/1/3

Cannon乘法 示例: A4×4, B4×4, p=16 A and B after initial alignment and shifts after every step A0,0 B0,0 A1,1 B1,0 A2,2 B2,0 A3,3 B3,0 A0,1 B1,1 A1,2 B2,1 A2,3 B3,1 A3,0 B0,1 A0,2 B2,2 A1,3 B3,2 A2,0 B0,2 A3,1 B1,2 A0,3 B3,3 A1,0 B0,3 A2,1 B1,3 A3,2 B2,3 国家高性能计算中心(合肥) 2019/1/3

Cannon乘法 示例: A4×4, B4×4, p=16 After first shift After second shift After third shift 国家高性能计算中心(合肥) 2019/1/3

Cannon乘法 算法描述: Cannon分块乘法算法 时间分析: //输入: An×n, Bn×n; 输出: Cn×n Begin (1)for k=0 to do for all Pi,j par-do (i) if i>k then Ai,j  Ai,(j+1)mod endif (ii)if j>k then Bi,j  B(i+1)mod , j endfor (2)for all Pi,j par-do Ci,j=0 endfor (3)for k=0 to do for all Pi,j par-do (i) Ci,j=Ci,j+Ai,jBi,j (ii) Ai,j  Ai,(j+1)mod (iii)Bi,j  B(i+1)mod , j endfor End 时间分析: 国家高性能计算中心(合肥) 2019/1/3

9. 4 矩阵乘法 9. 4. 1 简单并行分块乘法 9. 4. 2 Cannon乘法 9. 4. 3 Fox乘法 9. 4 9.4 矩阵乘法 9.4.1 简单并行分块乘法 9.4.2 Cannon乘法 9.4.3 Fox乘法 9.4.4 Systolic乘法 9.4.5 DNS乘法

Fox乘法 分块: 同Cannon分块算法 算法原理 ①Ai,i向所在行的其他处理器 进行一到多播送; ②各处理器将收到的A块与原 有的B块进行乘-加运算; ③B块向上循环移动一步; ④如果Ai,j是上次第i行播送的块,本次选择 向所 在行的其他处理器进行一到多播送; ⑤转②执行 次; A0,0 B0,0 A1,0 B1,0 A2,0 B2,0 A3,0 B3,0 A0,1 B0,1 A1,1 B1,1 A2,1 B2,1 A3,1 B3,1 A0,2 B0,2 A1,2 B1,2 A2,2 B2,2 A3,2 B3,2 A0,3 B0,3 A1,3 B1,3 A2,3 B2,3 A3,3 B3,3 国家高性能计算中心(合肥) 2019/1/3

Fox乘法 示例: A4×4, B4×4, p=16 (a) (b) A0,0 B0,0 B1,0 B2,0 B3,0 B0,1 A1,1 国家高性能计算中心(合肥) 2019/1/3

Fox乘法 示例: A4×4, B4×4, p=16 (c) (d) B2,0 B2,1 A0,2 B2,2 B2,3 B3,0 B3,1 国家高性能计算中心(合肥) 2019/1/3

9. 4 矩阵乘法 9. 4. 1 简单并行分块乘法 9. 4. 2 Cannon乘法 9. 4. 3 Fox乘法 9. 4 9.4 矩阵乘法 9.4.1 简单并行分块乘法 9.4.2 Cannon乘法 9.4.3 Fox乘法 9.4.4 Systolic乘法 9.4.5 DNS乘法

Systolic乘法 Step 1 b1,4 b1,3 b2,4 b1,2 b2,3 b3,4 b1,1 b2,2 b3,3 b4,4 a1,1 a1,2 a1,3 a1,4 P2, 1 c2,1 P2,2 c2,2 P2,3 c2,3 P2,4 c2,4 a2,1 a2,2 a2,3 a2,4 P3,1 c3,1 P3,2 c3,2 P3,3 c3,3 P3,4 c3,4 a3,1 a3,2 a3,3 a3,4 国家高性能计算中心(合肥) 2019/1/3

Systolic乘法 Step 2 b1,4 b1,3 b2,4 b1,2 b2,3 b3,4 b1,1 b2,2 b3,3 b4,4 a1,4 b4,1 c1,2 c1,3 c1,4 a1,1 a1,2 a1,3 + c2,1 c2,2 c2,3 c2,4 a2,1 a2,2 a2,3 a2,4 c3,1 c3,2 c3,3 c3,4 a3,1 a3,2 a3,3 a3,4 国家高性能计算中心(合肥) 2019/1/3

Systolic乘法 Step 3 b1,4 b1,3 b2,4 b1,2 b2,3 b3,4 b1,1 b2,2 b3,3 b4,4 a1,3 b3,1 c1,2 a1,4 b4,2 c1,3 c1,4 a1,1 a1,2 + + c2,1 a2,4 b4,1 c2,2 c2,3 c2,4 a2,1 a2,2 a2,3 + c3,1 c3,2 c3,3 c3,4 a3,1 a3,2 a3,3 a3,4 国家高性能计算中心(合肥) 2019/1/3

Systolic乘法 Step 4 b1,4 b1,3 b2,4 b1,2 b2,3 b3,4 b1,1 b2,2 b3,3 b4,4 a1,2 b2,1 a1,3 c1,2 b3,2 c1,3 a1,4 b4,3 c1,4 a1,1 + + + c2,1 a2,3 b3,1 c2,2 a2,4 b4,2 c2,3 c2,4 a2,1 a2,2 + + c3,1 a3,4 b4,1 c3,2 c3,3 c3,4 a3,1 a3,2 a3,3 + 国家高性能计算中心(合肥) 2019/1/3

Systolic乘法 Step 5 b1,4 b1,3 b2,4 b1,2 b2,3 b3,4 c1,1 a1,1 b1,1 a1,2 + + + + c2,1 a2,2 b2,1 c2,2 a2,3 b3,2 c2,3 a2,4 b4,3 c2,4 a2,1 + + + c3,1 a3,3 b3,1 c3,2 a3,4 b4,2 c3,3 c3,4 a3,1 a3,2 + + 国家高性能计算中心(合肥) 2019/1/3

Systolic乘法 Step 6 b1,4 b1,3 b2,4 c1,1 c1,2 a1,1 b1,2 c1,3 a1,2 b2,3 + + + c2,1 a2,1 b1,1 c2,2 a2,2 b2,2 c2,3 a2,3 b3,3 c2,4 a2,4 b4,4 + + + + c3,1 a3,2 b2,1 c3,2 a3,3 b3,2 c3,3 a3,4 b4,3 c3,4 a3,1 + + + 国家高性能计算中心(合肥) 2019/1/3

Systolic乘法 Step 7 b1,4 c1,1 c1,2 c1,3 a1,1 b1,3 c1,4 a1,2 b2,4 c2,1 + + c2,1 c2,2 a2,1 b1,2 c2,3 a2,2 b2,3 c2,4 a2,3 b3,4 + + + c3,1 a3,1 b1,1 c3,2 a3,2 b3,2 c3,3 a3,3 b3,3 c3,4 a3,4 b4,4 + + + + 国家高性能计算中心(合肥) 2019/1/3

Systolic乘法 Step 8 c1,1 c1,2 c1,3 c1,4 a1,1 b1,4 c2,1 c2,2 c2,3 a2,1 + c2,1 c2,2 c2,3 a2,1 b1,3 c2,4 a2,2 b2,4 + + c3,1 c3,2 a3,1 b1,2 c3,3 a3,2 b2,3 c3,4 a3,3 b3,4 + + + 国家高性能计算中心(合肥) 2019/1/3

Systolic乘法 Step 9 c1,1 c1,2 c1,3 c1,4 c2,1 c2,2 c2,3 c2,4 a2,1 b1,4 + c3,1 c3,2 c3,3 a3,1 b1,3 c3,4 a3,2 b2,4 + + 国家高性能计算中心(合肥) 2019/1/3

Systolic乘法 Step 10 c1,1 c1,2 c1,3 c1,4 c2,1 c2,2 c2,3 c2,4 c3,1 c3,2 a3,1 b1,4 + 国家高性能计算中心(合肥) 2019/1/3

Systolic乘法 Over c1,1 = a1,1 b1,1 + a1,2 b2,1 + a1,3 b3,1 + a1,4 b4,1 ………… c3,4 = a3,1 b1,4 + a3,2 b2,4 + a3,3 b3,4 + a3,4 b4,4 Over P1,1 c1,1 P1,2 c1,2 P1,3 c1,3 P1,4 c1,4 P2, 1 c2,1 P2,2 c2,2 P2,3 c2,3 P2,4 c2,4 P3,1 c3,1 P3,2 c3,2 P3,3 c3,3 P3,4 c3,4 国家高性能计算中心(合肥) 2019/1/3

Systolic乘法 Systolic算法 //输入: Am×n, Bn×k; 输出: Cm×k Begin for i=1 to m par- do for j=1 to k par-do (i) ci,j = 0 (ii) while Pi,j 收到a和b时 do ci,j = ci,j +ab if i < m then 发送b给Pi+1,j endif if j < k then 发送a给Pi,j+1 endif endwhile endfor End 国家高性能计算中心(合肥) 2019/1/3

9. 4 矩阵乘法 9. 4. 1 简单并行分块乘法 9. 4. 2 Cannon乘法 9. 4. 3 Fox乘法 9. 4 9.4 矩阵乘法 9.4.1 简单并行分块乘法 9.4.2 Cannon乘法 9.4.3 Fox乘法 9.4.4 Systolic乘法 9.4.5 DNS乘法

DNS乘法 背景: 由Dekel、Nassimi和Sahni提出的SIMD-CC上的矩阵乘法, 处理器 数目为n3, 运行时间为O(logn), 是一种速度很快的算法。 基本思想: 通过一到一和一到多的播送办法,使得处理器(k,i,j)拥有ai,k和bk,j, 进行本地相乘,再沿k方向进行单点积累求和,结果存储在处理器(0,i,j)中。 处理器编号: 处理器数p=n3= (2q)3=23q, 处理器Pr位于位置(k,i,j), 这里r=kn2+in+j, (0≤i, j, k≤n-1)。位于(k,i,j)的处理器Pr的三个寄存器 Ar,Br,Cr分别表示为A[k,i,j], B[k,i,j]和C[k,i,j], 初始时均为0。 算法: 初始时ai,j和bi,j存储于寄存器A[0,i,j]和B[0,i,j]; ①数据复制:A,B同时在k维复制(一到一播送); A在j维复制(一到多播送); B在i维复制(一到多播送); ②相乘运算:所有处理器的A、B寄存器两两相乘; ③求和运算:沿k方向进行单点积累求和; 国家高性能计算中心(合肥) 2019/1/3

示例 k j i C00=1×(-5)+2×7=9 C01=1×(-6)+2×8=10 C10=3×(-5)+4×7=13 A 101 111 P5 P7 100 110 P4 P6 001 011 P1 P3 000 010 P0 P2 A 初始加载 (b)A,B沿k维复制 (c)A沿j维复制 k j i B B (d)B沿i维复制 (e)点积 (f)沿k维求和 国家高性能计算中心(合肥) 2019/1/3

DNS乘法 算法描述: //令r(m)表示r的第m位取反; //{p, rm=d}表示r(0≤r≤p-1)的集合, 这里r的二 //输入: An×n, Bn×n; 输出: Cn×n Begin //以n=2, p=8=23举例, q=1, r=(r2r1r0)2 (1)for m=3q-1 to 2q do //按k维复制A,B, m=2 for all r in {p, rm=0} par-do //r2=0的r (1.1) Ar(m)  Ar //A(100)A(000)等 (1.2) Br(m)  Br //B(100)B(000)等 endfor (2)for m=q-1 to 0 do //按j维复制A, m=0 for all r in {p, rm= r2q+m} par-do //r0=r2的r Ar(m)  Ar //A(001)A(000),A(100)A(101) endfor //A(011)A(010),A(110)A(111) (3)for m=2q-1 to q do //按i维复制B,m=1 for all r in {p, rm= rq+m} par-do//r1=r2的r Br(m) Br //B(010)B(000),B(100)B(110) endfor //B(011)B(001),B(101)B(111) endfor (4)for r=0 to p-1 par-do //相乘, all Pr Cr=Ar×Br (5)for m=2q to 3q-1 do //求和,m=2 for r=0 to p-1 par-do Cr=Cr+Cr(m) End 国家高性能计算中心(合肥) 2019/1/3

DNS乘法 示例 国家高性能计算中心(合肥) 2019/1/3

DNS乘法 k j i 国家高性能计算中心(合肥) 2019/1/3