计算机仿真原理及应用.ppt
《计算机仿真原理及应用.ppt》由会员分享,可在线阅读,更多相关《计算机仿真原理及应用.ppt(74页珍藏版)》请在三一办公上搜索。
1、单位:物理电子学院 主讲人:王刚 Email:buncan_,计算机仿真原理与应用,1.为什么需要并行计算?2.并行计算技术的分类3.并行计算的主要技术问题4.MPI并行程序设计,5 并行计算与仿真,贯穿整个计算机技术发展的核心目标:提高计算性能!,Intel微处理器每秒1千8百亿次浮点运算!,近20年性能提高3千多倍,巨型机:中国天河一号,2010年底世界TOP500强第1名每秒2千5百多万亿次浮点运算,近20年性能提高3千多倍,亿亿千万亿百万亿十万亿万亿千亿百亿十亿亿,2011年6月日本“K Computer”以每秒1亿亿次名列第一,几乎是第2-9位的总和,中国天河位列第二,亿亿千万亿百万
2、亿十万亿万亿千亿百亿十亿亿,提高计算机性能的主要手段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,提高计算机性能的主要手段2.提高集成度摩尔定律:芯片集成度每18个月翻一倍,计算性能提高一倍,为什么需要并行计算?,提高计算机性能的主要手段3.流水线等微体系结构技术 实现指令级并行(Instruction-Level Parallelism,
3、ILP)RISC结构 5级流水线,为什么需要并行计算?,提高计算机性能的主要手段3.流水线等微体系结构技术 分支预测,寄存器重命名,超长指令字(VLIW),超标量(Superscalar),乱序执行,Cache Pentium 4(CISC结构)采用了20级复杂流水线,为什么需要并行计算?,提高计算机性能的主要手段4.提高处理器频率:1990s-2004:,为什么需要并行计算?,所有这些技术极大地提高了微处理器的计算性能,但2004年后处理器的性能不再像人们预期的那样提高,单核处理器性能提升接近极限!,集成度,性能,为什么需要并行计算?,单核处理器性能提升接近极限1.VLSI集成度不可能无限制
4、提高,芯片集成度已进入极小尺度级别,集成度不可能无限制提高1nm(纳米)约头发直径的6万分之一或4个原子长度10-20nm仅有几百个原子的长度,为什么需要并行计算?,单核处理器性能提升接近极限2.处理器的指令级并行度提升接近极限 长指令字,流水线,分支预测,寄存器命名,超标量,乱序执行,动态发射,高速缓冲(Cache)高级流水线等各种复杂的微体系结构技术都已得到研究应用,难以进一步挖掘更多的指令级并行性(Instruction-Level Parallism),ILP墙,为什么需要并行计算?,单核处理器性能提升接近极限3.处理器速度和存储器速度差异越来越大处理器性能每2年翻一倍,而存储器性能每
5、6年翻一倍 为了匹配两者间速度差异,处理器需要做越来越大的Cache,存储墙,CPU计算速度:1ns级别主存访问速度:100ns级别,为什么需要并行计算?,单核处理器性能提升接近极限4.功耗和散热大幅增加超过芯片承受能力晶体管密度不断提高,单位面积功耗和散热大幅增加主频提高导致功耗和散热急剧增加功耗P=CV2f,C:时钟跳变时门电路电容,V:电压,f:主频晶体管数越多,电容越大=功耗越大;主频越高=功耗越大,功耗墙,Cite from Edward L.Bosworth,The Power Wall,2010,为什么需要并行计算?,单核处理器性能提升接近极限2005年前,人们预期可以一直提升处
6、理器主频但2004年5月Intel处理器Tejas and Jayhawk(4GHz)因无法解决散热问题最终放弃,标志着升频技术时代的终结,Cite from Edward L.Bosworth,The Power Wall,2010,2005年前人们预计的主频提升路线图,2007年人们大大降低了主频提升预期,2005年后Intel转入多核技术,为什么需要并行计算?,单处理器向多核并行计算发展成为必然趋势多核/众核并行计算 2005年Intel全面转入多核计算技术,采用多核/众核构架,简化单处理器的复杂设计,代之以单个芯片上设计多个简化的处理器核,以多核/众核并行计算提升计算性能双核:Pent
7、ium D(05),EE(06),Xeon(06)Core 2 Duo E系列,T系列(06)Core i3,i5(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:http:/,ASCI Red:1996,第一个达到1TF
8、lops(10万亿次浮点运算)的并行计算系统,使用了10,000颗PentiumPro处理器(200MHz),耗电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 M2
9、050/2070:448核 S2050 1U GPU 处理系统:4个M2050/2070,1792核,为什么需要并行计算?,应用领域计算规模和复杂度大幅提高爆炸性增长的Web规模数据量Google从2004年每天处理100TB数据到2008年每天处理20PB2009年eBays数据仓库,一个有2PB用户数据,另一个6.5PB用户数据包含170TB记录且每天增长150GB个记录;Facebook:2.5PB用户数据,每天增加15TB世界最大电子对撞机每年产生15PB(1千5百万GB)数据2015年落成的世界最大观天望远镜主镜头像素为3.2G,每年将产生6PB天文图像数据;欧洲生物信息研究中心(E
10、BI)基因序列数据库容量已达5PB;中国深圳华大基因研究所成为全世界最大测序中心,每天产生300GB基因序列数据(每年100TB),为什么需要并行计算?,应用领域计算规模和复杂度大幅提高超大的计算量/计算复杂度用SGI工作站进行电影渲染时,每帧一般需要12小时一部2小时的电影渲染需要:2小时x3600秒x24帧x(12小时)/24小时=2040年!特殊场景每帧可能需要60个小时(影片“星舰骑兵”中数千只蜘蛛爬行的场面),用横向4096象素分辨率进行渲染时,如果以每帧60个小时的速度,则1秒的放映量(24帧)需要60天的渲染时间,1分钟则需要100年!世界著名的数字工作室Digital Doma
11、in公司用了一年半的时间,使用了300多台SGI超级工作站,50多个特技师一天24小时轮流制作泰坦尼克号中的电脑特技,为什么需要并行计算?,解决方案?,并行计算!,SMP,MPP,Cluster,GRID,Cloud,MulticoreManycore,为什么需要并行计算?,并行计算技术的发展趋势和影响越来越多的研究和应用领域将需要使用并行计算技术 并行计算技术将渗透到每个计算应用领域,尤其是涉及到大规模数据和复杂计算的应用领域并行计算技术将对传统计算技术产生革命性的影响并行计算技术将影响传统计算技术的各个层面,与传统计算技术相互结合产生很多新的研究热点和课题:体系结构技术 操作系统、编译技术
12、、数据库等系统软件技术 程序设计技术和方法 软件工程技术 图形图像和多媒体信息处理 人工智能 各种应用软件开发很多传统的串行算法和计算方法都将需要重新研究和设计其并行化算法和计算方法;我系很多研究领域都明确需要基于并行计算技术进行研究,为什么需要并行计算?,为什么需要学习并行计算技术?软件开发/程序设计人员面临挑战!20-30年里程序设计技术的最大的革命是面向对象技术 The revolution in mainstream software development from structured programming to object-oriented programming was t
13、he greatest such 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 dont grok concurrency,just as the vast majority of programmers 15 years ago didnt
14、yet grok objects,*March 2005,Cite from Herb Sutter,The Free Lunch Is Over-A Fundamental Turn Toward Concurrency in Software Dr.Dobbs Journal,30(3),1.为什么需要并行计算?2.并行计算技术的分类3.并行计算的主要技术问题4.MPI并行程序设计,2.并行计算技术的分类,经过多年的发展,出现了不同类型的并行计算技术和系统,同时也存在不同的分类方法按数据和指令处理结构:弗林(Flynn)分类按并行类型按存储访问构架按系统类型按计算特征按并行程序设计模型/方
15、法,并行计算技术的分类,按数据和指令处理结构分类:弗林(Flynn)分类 1966年,斯坦福大学教授Flynn提出的经典的计算机结构分类,从最抽象的指令和数据处理结构的角度进行分类SISD:单指令单数据流 传统的单处理器串行处理SIMD:单指令多数据流 向量机,信号处理系统MISD:多指令单数据流 很少使用MIMD:多指令多数据流 最常用,TOP500 基本都属于MIMD类型,弗林(Flynn)分类,SISD,MIMD,SIMD,并行计算技术的分类,Cite from Jimmy Lin,What is cloud computing,2008,并行计算技术的分类,按并行类型分类 位级并行(B
16、it-Level Parallelism)指令级并行(ILP:Instruction-Level Parallelism)线程级并行(Thread-Level Parallelism)数据级并行:一个大的数据块划分为小块,分别 由不同的处理器/线程处理 任务级并行:一个大的计算任务划分为子任务分 别由不同的处理器/线程来处理,按存储访问结构分类A.共享内存(Shared Memory)所有处理器通过总线共享内存 多核处理器,SMP 也称为UMA结构(Uniform Memory Access)B.分布共享存储体系结构 各个处理器有本地存储器 同时再共享一个全局的存储器C.分布式内存(Distr
17、ibuted Memory)各个处理器使用本地独立的存储器 B和C也统称为NUMA结构(Non-Uniform Memory Access),并行计算技术的分类,ABC,并行计算技术的分类,按系统类型分类 多核/众核并行计算系统MC(Multicore/Manycore)或Chip-level multiprocessing,CMP 对称多处理系统SMP(Symmetric Multiprocessing)多个相同类型处理器通过总线连接并共享存储器 大规模并行处理MPP(Massive Parallel Processing)专用内联网连接一组处理器形成的一个计算系统 集群(Cluster)网
18、络连接的一组普通商用计算机构成的计算系统 网格(Grid)用网络连接远距离分布的一组异构计算机构成的 计算系统,紧密耦合度松散,低可扩展性高,低能 耗高,并行计算技术的分类,按系统类型分类 不同系统的特征和对比,从MC到Grid,耦合度越来越低,但可扩展性越来越高,系统规模越来越大,而能耗也越来越高MC处理器核通过NOC(片上网络)集成在一个芯片上,通常使用混合式内存访问机制(本地缓存加全局内存),功耗很低SMP使用独立的处理器和共享内存,以总线结构互联,运行一个操作系统,定制成本高,难以扩充,规模较小(2-8处理器)MPP使用独立的处理器及独立的内存、OS,专用的高速内联网络,难以升级和扩充
19、,规模中等(TOP500中有80多个)Cluster使用商品化的刀片或机架服务器,以网络互联为一个物理上紧密的计算系统,可扩展性强,规模可小可大,是目前高性能并行计算最常用的形式(TOP500中有400多个)Grid则为地理上广泛分布的异构计算资源构成的一个极为松散的计算系统,主要用于并行度很低的大规模科学计算任务,并行计算技术的分类,按计算特征分类 数据密集型并行计算(Data-Intensive Parallel Computing)数据量极大、但计算相对简单的并行处理 如:大规模Web 信息搜索 计算密集型并行计算(Computation-Intensive Parallel Compu
20、ting)数据量相对不是很大、但计算较为复杂的并行处理 如:3-D建模与渲染,气象预报,科学计算 数据密集与计算密集混合型并行计算 兼具数据密集型和计算密集型特征的并行计算,如3D电影渲染,并行计算技术的分类,按并行程序设计模型/方法分类 共享内存变量(Shared Memory Variables)多线程共享存储器变量方式进行并行程序设计,会引起数 据不一致性,导致数据和资源访问冲突,需要引入同步控制机制;Pthread,OpenMP:共享内存式多处理并行编程接口 消息传递方式(Message Passing)对于分布式内存结构,为了分发数据和收集计算结果,需要在各个计算节点间进行数据通信,
21、最常用的是消息 传递方式;MPI:消息传递并行编程接口标准 MapReduce方式 Google公司提出的MapReduce并行程序设计模型,是目 前最易于使用的并行程序设计方法,广泛使用于搜索引 擎等大规模数据并行处理,并行计算技术的分类,不同类型并行计算技术和系统的发展历史和现状主要发展历史阶段 1975-1985 主要是向量机技术,如Cray1,Cray2。但基于多线程的并行计算也逐步引入。1986-1995 大规模并行处理MPP成为主流并行计算技术,消息传递编程接口MPI得到开发应用。目前TOP500中有84个基于MPP。1995-现在 Cluster和Grid并行计算技术成为主流,但
22、目前Grid的发展已呈下降趋势,目前TOP500中有414个基于Cluster。,并行计算技术的分类,不同类型并行计算技术和系统的发展历史和现状主要发展历史阶段,并行计算技术的分类,不同类型并行计算技术和系统的发展历史和现状主要发展趋势SMP作为共享内存式小规模并行计算技术一直活跃60-70年代基于大型机的SMP系统,80年代基于80386/80486的SMP系统,90年代到目前基于多核的个人电脑、服务器大都基于SMP多核/众核并行计算成为重要发展趋势 由于单核处理器性能发展的瓶颈,同时由于多核/众核计算计算自身具有的体积小、功耗低等诸多技术特点和优势,今后多核/众核并行计算会称为必然趋势并行
23、计算软件技术远远落后于硬件发展速度 并行计算硬件技术水平和规模发展迅速,但并行计算软件技术远远跟不上硬件发展水平和速度,缺少有效的并行计算软件框架、编程模型和方法,1.为什么需要并行计算?2.并行计算技术的分类3.并行计算的主要技术问题4.MPI并行程序设计,3.并行计算的主要技术问题,数据怎么存?怎么算?,硬件构架,软件构架,并行算法,3.并行计算的主要技术问题,依赖于所采用的并行计算体系结构,不同类型的并行计算系统,在硬件构架、软件构架和并行算法方面会涉及到不同的技术问题,但概括起来,主要有以下技术问题:多核/多处理器网络互连结构技术 存储访问体系结构 分布式数据与文件管理 并行计算任务分
24、解与算法设计 并行程序设计模型和方法 数据同步访问和通信控制 可靠性设计与容错技术 并行计算软件框架平台 系统性能评价和程序并行度评估,并行计算的主要技术问题,多核/多处理器网络互连结构技术 主要研究处理器间互联拓扑结构,尤其在包含大量处理器的并行计算系统中,需要具有良好的互联结构,以保证大量处理器能真正有效地协同工作,获得应有的并行计算效率。共享总线连接(Shared Bus)交叉开关矩阵(Crossbar Switch)环形结构(Torus)Mesh网络结构(Mesh Network)片上网络(NOC,Network-on-chip),并行计算的主要技术问题,存储访问体系结构 主要研究不同
25、的存储结构,以及在不同存储结构下的特定技术问题共享存储器体系结构(Shared Memory)共享数据访问与同步控制分布存储体系结构(Distributed Memory)数据通信控制和节点计算同步控制分布共享存储结构(Distributed Shared Memory)Cache的一致性问题数据访问/通信的时间延迟,并行计算的主要技术问题,分布式数据与文件管理 并行计算的一个重要问题是,在大规模集群环境下,如何解决大数据块的存储和访问管理;尤其是数据密集型并行计算时,理想的情况是提供分布式数据与文件管理系统,如RedHat GFS(Global File System)IBM GPFSSun
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机仿真 原理 应用

链接地址:https://www.31ppt.com/p-2409537.html