当前位置:文档之家› 多核技术与并行计算

多核技术与并行计算

31


企事业单位需求——大型企业的ERP、
CRM等复杂应用,科学计算、政府的大型
数据库管理系统、数字医疗领域、电信、
金融等都需要高性能计算,多核技术可以
满足这些应用的需求。
32
3. 多核计算成为发展趋势
目前芯片厂商都已转向了多核CPU的开发
和生产。市场已经被多核计算机占领。多核
处理器是处理器发展的必然趋势,无论是移
理器性能提高约20倍,体系结构的发展使
得处理器性能提高约4倍,编译技术的发展 使得处理器性能提高约1.4倍。

但是今天,这种规律性的东西却很难维持。
17

美国科学家指出,经过几十年的发展,计
算机芯片的微型化已接近极限。计算机技
术的进一步发展只能寄希望于全新的技术,
如新材料、新的晶体管设计方法和分子层


早在上世纪90年代末,就有众多业界人士 呼吁用CMP(单芯片多处理器)技术来替代 复杂性较高的单线程CPU。 IBM、惠普、Sun等高端服务器厂商,相 继推出了多核服务器CPU。 直到AMD抢先推出64位处理器后,英特尔 才想起利用“多核”这一武器进行“帝国 反击战”。真正的“双核元年”,是2006 年。
9
冯.诺伊曼计算机结构
10
冯· 诺依曼计算机 输入设备 Input Device 输入接口 内存储器 Inner Memory
输出设备 Output Device
输出接口
A-BUS
D-BUS C_BUS
中央处理器 CPU
11
4、系统结构发展趋势
动物食物链
12
1984计算机食物链
Mainframe Mini Computer Workstation
6
直到1992年出现32位的Windows 3.1时,32 位的80x86处理器才有了一个广泛使用的 32位系统结构的操作系统和开发环境,而 32位机的应用软件一直到1997年才广泛上 市。 目前进入主流系统结构的是64位计算机系统。 而多核处理器的出现又使单核处理器逐渐 退出市场。
7
3、计算机系统结构分类
Core1
Front Side Bus
Front Side Bus
产量 …
多功能 … 功 效
49
50
5.操作系统对多核处理器的支持

Windows和Linux都支持多线程,因此也
可用于多核计算机。
多核技术与并行计算
主讲人
郑晓薇
辽宁师范大学计算机与信息技术学院
E-mail: xwzheng@ 2010.4.9
1
第一部分
计算机系统结构
2
1、计算机系统结构的发展

现代信息社会的发展是以计算机技术和网络
通信技术的发展为基础的。计算机系统结构
的发展从大型机、向量超级机、小型机、微
24


单核时代,提高性能还采用了超标量技术, 从增加部件方式达到单位时间内执行多条 指令的目的;采用了超流水线技术提高频 率。 这些方式是从指令级上提升CPU的性能, 也已经达到极限。单纯提高CPU的速度还 面临存储器访问速度不匹配问题。所以并 不能使系统整体性能提高。
25
2 . 对高性能计算需求的增加 •网络服务器软件——大型聊天室,搜索引擎 等,现有的计算能力远远不能满足未来网络服 务器的计算需求。
提高应用的开发和更新效率。出于商业目的没有
公开源代码。应用程序只需要两个接口函数Map
和Reduce可实现分布式并行。
30

Apache为开源项目组织的大力推进者。根 据Google提出的MapReduce框架用JAVA 语言实现了开源的部署于集群中的平台, 取名为Hadoop,用于集群下的并行计算。 Phoenix由Stanford大学提出的一个开源 的多核平台实现。使用Pthead库,在每个 核上运行一个线程来执行每一个Map任务 或者Reduce任务。
(a) 单核结构
(b) 多处理器结构(2个独立封装)
43
CPU状态
CPU状态
CPU状态
CPU状态
中断逻辑
中断逻辑
中断逻辑 执行单元
中断逻辑 执行单元
执行单 元
Cache
执行单 元
Cห้องสมุดไป่ตู้che
Cache
(d) 多核体系结构(1个封装)
(e) 共享cache的多核体系结构
44
3. 超线程技术
只有一个实际的物理处理器,单个处理器 被分成许多部分来使用,其中执行部件 被各线程共享,其他部分可以在各线程 中分别复制使用。超线程技术中的线程 执行并不是真正意义上的并行。

2010年3月惠普笔记本的过热问题,主板 烧毁,召回门事件。
22

就连戈登摩尔本人似乎也依稀看到了“主 频为王”这条路的尽头——2005年4月, 他曾公开表示,引领半导体市场接近40年 的“摩尔定律”,在未来10年至20年内可 能失效。
但是从单核到双核,再到多核的发展,证 明了摩尔定律还是非常正确的—— “从单 核到双核,再到多核的发展,是摩尔定律 问世以来,在芯片发展历史上速度最快的 性能提升过程”。 23
27

例如汽车辅助安全驾驶系统,在汽车行驶 中,可以自动侦查汽车附近的物体,如有 碰撞的危险,会及时报警和刹车。这个过 程需要每秒进行几千亿次的运算,过去是 没法实现的,现在有了多核CPU,在一个 最新的8核CPU上就可以实现了。
28

服务器应用——要求高的吞吐率和在多处
理器上的多线程应用;Internet的应用、
P2P和普适计算的应用都促使了计算机性
能的不断提升,多核技术已经成为服务器
技术的重要技术支点。
29

服务器集群应用——云计算、云应用、云存储
商业化的服务器已转为多核和多节点的集群服务方 式。 Google是典型的云计算服务公司。 MapReduce是Google提出一个创新的编程模型,
是为了简化其公司内部互联网服务的开发过程,
杂度大大增加。因此主频的提升空间已
经不大。
20

CPU主频的提高,在一定程度上也要归功 于1975年进入这个领域的AMD公司的挑战。 但到了2005年,当主频接近4GHz时,英 特尔和AMD发现,速度也会遇到自己的极 限:那就是单纯的主频提升,已经无法明 显提升系统整体性能。

21

此外,随着功率增大,散热问题也越来越 成为一个无法逾越的障碍。据测算,主频 每增加1G,功耗将上升25瓦,而在芯片功 耗超过150瓦后,现有的风冷散热系统将无 法满足散热的需要。3.4GHz的奔腾四至尊 版,晶体管达1.78亿个,最高功耗已达135 瓦。
核的性能是并行程序设计的重点。
34
多核并行编程环境
Windows多线程编程 OpenMP多线程编程 (共享存储) MPI并行编程环境(消息传递接口 ) TBB线程构建模块 (Intel公司 ) Matleb并行计算工具箱 (Mathwork公司 ) MapReduce 编程模型( Google公司)
弗林分类法(Flynn分类法) Michael.J.Flynn1966年提出按指令流 和数据流的多倍性状况对计算机系统 进行分类。 根据指令流和数据流,计算机系统可 分为四类:
8
(1)单指令流单数据流SISD
(2)单指令流多数据流SIMD
(3)多指令流单数据流MISD
(4)多指令流多数据流MIMD
就不会作为主流系统结构,而有新的系统
结构替代它。
一种计算机系统结构,从产生到消亡,
大致需要15—20年的时间。
5
典型例子是Intel公司80X86系列微处 理器中32位系统结构的发展。1985年 第一个32位微处理器80386投入市场时, 并没有相应的32位操作系统,人们仅仅 将它当成一个高速的8086使用。
动与嵌入式应用、桌面应用还是服务器应用,
都将采用多核的架构。
多核编程将成为程序员必须掌握的技术。
33
多核平台上的应用软件开发

多核平台上的应用软件开发不同于以前的
软件编写思想
首先设计者必须认识底层多核的存在
把软件设计成多进程或多线程
并将这些进程或线程与底层的多核处理
器绑定

如何将软件分成多个进程或线程,发挥多
•多媒体游戏软件——要对图形、动画做大量 运算。现有的计算能力的限制,现在游戏一般 都运行在较低的分辨率下;有一些 战斗游戏, 各个战斗单元都是并发计算,对计算能力的需 求更加巨大。
26
客户端软件——杀毒软件、安全软件对计算 能力的需求也大大增加。装上杀毒软件的机 器的速度明显受到影响。杀毒软件的运行速 度也大为降低。也说明杀毒软件对计算能力 的需求增长之快。 实时嵌入式系统——在高端通信和医疗成像 等计算密集型应用领域,多核嵌入式处理器 提供卓越性能和可扩充性,实现低能耗、高 效能优势。
PC
Vector Supercomputer
13
1994 计算机食物链
(hitting wall soon)
Mini Computer
Workstation
PC
(future is bleak)
Mainframe
Vector Supercomputer
MPP
14
2000年代计算机食物链(现在和将来)
志。而它的发展和成熟,则是以配套的系统软 件和应用为标志。一旦这种系统结构不能够满 足应用的需要,这种系统结构就会消亡,从而 诞生新的系统结构。
4
计算机发展的历史表明:从硬件成熟到系统
软件成熟大约需要5—7年时间,从系统软
件成熟到应用软件成熟,大约也需要5—7
年时间。再过5—7年时间,这种系统结构
相关主题