《Ch1_并行计算技术概述》由会员分享,可在线阅读,更多相关《Ch1_并行计算技术概述(110页珍藏版)》请在金锄头文库上搜索。
1、鸣谢 本课程得到鸣谢 本课程得到GoogleGoogle公司公司 北京 北京 中国大学合作部精品课程计划资助中国大学合作部精品课程计划资助 1 1 为什么需要并行计算 为什么需要并行计算 2 2 并行计算技术的分类并行计算技术的分类 3 3 并行计算的主要技术问题并行计算的主要技术问题 4 MPI4 MPI并行程序设计并行程序设计 5 5 为什么需要大规模数据并行处理 为什么需要大规模数据并行处理 贯穿整个计算机技术发展的核心目标 提高计算性能 Intel 微处理器 每秒 1千8百亿次 浮点运算 近20年性能 提高3千多倍 巨型机 中国天河一号 2010年底世界TOP500强第1名 每秒2千5
2、百多万亿次浮点运算 近20年性能提高3千多倍 亿亿 千万亿 百万亿 十万亿 万亿 千亿 百亿 十亿 亿 2011年6月日本 K Computer 以每秒1亿亿次名列第一 几乎是第2 9位的总和 中国天河位列第二 亿亿 千万亿 百万亿 十万亿 万亿 千亿 百亿 十亿 亿 提高计算机性能的主要手段 1 提高处理器字长 70 80年代 Intel处理器 71年 4004 4bits 78年 8086 8bits 82年 80286 16bits 85年 90s 80386 486 Pentium P2 P3 P4 32bits 05年 Pentium D往后 Core i3 i5 i7 64bits
3、 提高计算机性能的主要手段 2 提高集成度 摩尔定律 芯片集成度 每18个月翻 一倍 计算 性能提高一倍 为什么需要并行计算 为什么需要并行计算 提高计算机性能的主要手段 3 流水线等微体系结构技术 实现指令级并行 Instruction Level Parallelism ILP RISC结构 5级流水线 为什么需要并行计算 为什么需要并行计算 提高计算机性能的主要手段 3 流水线等微体系结构技术 分支预测 寄存器重命名 超长指令字 VLIW 超标 量 Superscalar 乱序执行 Cache Pentium 4 CISC结构 采用了20级复杂流水线 为什么需要并行计算 为什么需要并行计
4、算 提高计算机性能的主要手段 4 提高处理器频率 1990s 2004 为什么需要并行计算 为什么需要并行计算 所有这些技 术极大地提 高了微处理 器的计算性 能 但2004 年后处理器 的性能不再 像人们预期 的那样提高 单核处理 器性能提 升接近极 限 集成度 性能 为什么需要并行计算 为什么需要并行计算 单核处理器性能提升接近极限 1 VLSI集成度不可能无限制提高 芯片集成度已进入极小尺度级别 集成度不可能无限制提高 1nm 纳米 约头发直径的 6万分之一 或4个原子长度 10 20nm仅有 几百个原子 的长度 为什么需要并行计算 为什么需要并行计算 单核处理器性能提升接近极限 2 处
5、理器的指令级并行度提升接近极限 长指令字 流水线 分支预测 寄存器命名 超标量 乱序执行 动态发射 高速缓冲 Cache 高级流水线等各种复杂的微体系结构技术都已得到研究 应用 难以进一步挖掘更多的指令级并行性 Instruction Level Parallism 为什么需要并行计算 为什么需要并行计算 单核处理器性能提升接近极限 3 处理器速度和存储器速度差异越来越大 处理器性能每2年翻一倍 而存储器性能每6年翻一倍 为了匹配两者间速度差异 处理器需要做越来越大的Cache CPU计算速度 1ns级别 主存访问速度 100ns级别 为什么需要并行计算 为什么需要并行计算 单核处理器性能提升
6、接近极限 4 功耗和散热大幅增加超过芯片承受能力 晶体管密度不断提高 单位面积功耗和散热大幅增加 主频提高导致功耗和散热急剧增加 功耗P CV2f C 时钟跳变时门电路电容 V 电压 f 主频 晶体管数越多 电容越大 功耗越大 主频越高 功耗越大 Cite from Edward L Bosworth The Power Wall 2010 为什么需要并行计算 为什么需要并行计算 单核处理器性能提升接近极限 2005年前 人们预期可以一直提升处理器主频 但2004年5月Intel处理器Tejas and Jayhawk 4GHz 因无法解 决散热问题最终放弃 标志着升频技术时代的终结 Cite
7、 from Edward L Bosworth The Power Wall 2010 2005年前 人们预计 的主频提 升路线图 2007年人们大 大降低了主频 提升预期 2005年后 Intel转入 多核技术 为什么需要并行计算 为什么需要并行计算 单处理器向多核并行计算发展成为必然趋势 多核 众核并行计算 2005年Intel全面转入多核计算技术 采用多核 众核构架 简 化单处理器的复杂设计 代之以单个芯片上设计多个简化的处 理器核 以多核 众核并行计算提升计算性能 双核 Pentium D 05 EE 06 Xeon 06 Core 2 Duo E系列 T系列 06 Core i3 i
8、5 10 4核 Core 2 Quad Q系列 07 Core i5 i7 08 09 10 6核 Core i7 970 980 10 8核 AMD Bulldozer 10 典型的双核处理器结构 为什么需要并行计算 为什么需要并行计算 单处理器向多核并行计算发展成为必然趋势 多核 众核并行计算 Intel实验芯片 Single Cloud Chip SCC 48核 Teraflops 80核 Cite from Intel website ASCI Red 1996 第一个达到 1TFlops 10万亿次浮点运算 的并 行计算系统 使用了10 000颗 PentiumPro处理器 200M
9、Hz 耗 电500kW 外加500kW用于机房 散热 Teraflops 达到 1 01TFlops 3 16GHz 1 81TFlops 5 7GHz 功耗62W 为什么需要并行计算 为什么需要并行计算 单处理器向多核并行计算发展成为必然趋势 多核 众核并行计算 根据摩尔定律 Intel预计其通用的众核并行计算芯片 2015年 128核 2017年 256核 2019年 512核 2023年 2024核 NVIDIA GPU Graphic Processing Unit 主要用于图形图像并行处理 Tesla M2050 2070 448核 S2050 1U GPU 处理系统 4个M2050
10、 2070 1792核 为什么需要并行计算 为什么需要并行计算 应用领域计算规模和复杂度大幅提高 爆炸性增长的Web规模数据量 Google从2004年每天处理100TB数据到2008年每天处理20PB 2009年eBays数据仓库 一个有2PB用户数据 另一个6 5PB 用户数据包含170TB记录且每天增长150GB个记录 Facebook 2 5PB用户数据 每天增加15TB 世界最大电子对撞机每年产生15PB 1千5百万GB 数据 2015年落成的世界最大观天望远镜主镜头像素为3 2G 每年 将产生6PB天文图像数据 欧洲生物信息研究中心 EBI 基因序列数据库容量已达5PB 中国深圳华
11、大基因研究所成为全世界最大测序中心 每天产 生300GB基因序列数据 每年100TB 为什么需要并行计算 为什么需要并行计算 应用领域计算规模和复杂度大幅提高 超大的计算量 计算复杂度 用SGI工作站进行电影渲染时 每帧一般需要1 2小时 一部2小时的电影渲染需要 2小时x3600秒x24帧x 1 2小时 24小时 20 40年 特殊场景每帧可能需要60个小时 影片 星舰骑兵 中数 千只蜘蛛爬行的场面 用横向4096象素分辨率进行渲染时 如果以每帧60个小时的速度 则1秒的放映量 24帧 需要60天的渲染时间 1分钟则需要100年 世界著名的数字工作室Digital Domain公司用了一年半
12、的 时间 使用了300多台SGI超级工作站 50多个特技师一天 24小时轮流制作 泰坦尼克号 中的电脑特技 为什么需要并行计算 为什么需要并行计算 ClusterCluster 为什么需要并行计算 为什么需要并行计算 并行计算技术的发展趋势和影响 越来越多的研究和应用领域将需要使用并行计算技术 并行计算技术将渗透到每个计算应用领域 尤其是涉及到大规模数 据和复杂计算的应用领域 并行计算技术将对传统计算技术产生革命性的影响 并行计算技术将影响传统计算技术的各个层面 与传统计算技术相 互结合产生很多新的研究热点和课题 体系结构技术 操作系统 编译技术 数据库等系统软件技术 程序设计技术和方法 软件
13、工程技术 图形图像和多媒体信息处理 人工智能 各种应用软件开发 很多传统的串行算法和计算方法都将需要重新研究和设计其并行化 算法和计算方法 我系很多研究领域都明确需要基于并行计算技术进行研究 为什么需要并行计算 为什么需要并行计算 为什么需要学习并行计算技术 软件开发 程序设计人员面临挑战 20 30年里程序设计技术的最大的革命是面向对象技术 The revolution in mainstream software development from structured programming to object oriented programming was the greatest s
14、uch change in the past 20 to 30 years 下一个程序设计技术的革命将是并行程序设计 Concurrency is the next major revolution in how we write software 今天绝大多数程序员不懂并行设计技术 就像15年前 绝大 多数程序员不懂面向对象技术一样 The vast majority of programmers today don t grok concurrency just as the vast majority of programmers 15 years ago didn t yet grok
15、 objects March 2005 Cite from Herb Sutter The Free Lunch Is Over A Fundamental Turn Toward Concurrency in Software Dr Dobb s Journal 30 3 1 1 为什么需要并行计算 为什么需要并行计算 2 2 并行计算技术的分类并行计算技术的分类 3 3 并行计算的主要技术问题并行计算的主要技术问题 4 4 MPIMPI并行程序设计并行程序设计 5 5 为什么需要大规模数据并行处理 为什么需要大规模数据并行处理 2 2 并行计算技术的分类并行计算技术的分类 经过多年的发展
16、出现了不同类型的并行计算技术和系 统 同时也存在不同的分类方法 按数据和指令处理结构 弗林 Flynn 分类 按并行类型 按存储访问构架 按系统类型 按计算特征 按并行程序设计模型 方法 并行计算技术的分类并行计算技术的分类 按数据和指令处理结构分类 弗林 Flynn 分类 1966年 斯坦福大学教授Flynn提出的经典的计算机结构分 类 从最抽象的指令和数据处理结构的角度进行分类 SISD 单指令单数据流 传统的单处理器串行处理 SIMD 单指令多数据流 向量机 信号处理系统 MISD 多指令单数据流 很少使用 MIMD 多指令多数据流 最常用 TOP500 基本都属于MIMD类型 弗林 Flynn 分类 SISD MIMD SIMD 并行计算技术的分类并行计算技术的分类 Cite from Jimmy Lin What is cloud computing 2008 并行计算技术的分类并行计算技术的分类 按并行类型分类 位级并行 Bit Level Parallelism 指令级并行 ILP Instruction Level Parallelism 线程级并行 Thread Le