多核编程技术ppt课件.ppt
《多核编程技术ppt课件.ppt》由会员分享,可在线阅读,更多相关《多核编程技术ppt课件.ppt(74页珍藏版)》请在三一办公上搜索。
1、2022/12/12,1,第8章 多核并发(并行)程序设计,主讲:黎忠文,2022/12/12,2,目 录8.1 什么是多核并发(并行)程序设计8.2 为什么要学习多核程序设计8.3 多核并发程序设计环境及开发方法8.4 IXP2400平台上多核程序并发(并行) 设计,2022/12/12,3,8.1 什么是多核并发(并行)程序设计,8.1.1 并发与并行的区别是什么? 并发与并行是两个既相似而又不相同的概念:并发性,又称共行性,是指能处理多个同时性活动的能力;并行是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行,也亦是说并发事件之间不一定要同一时刻发生。 本课程中并发和并行概念
2、基本相同,都包含同时性,同时并发的概念含义更广泛一些。,2022/12/12,4,8.1.2 什么是并行计算?并行计算是相对于串行计算来说的,所谓并行计算分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。 并行计算科学中主要研究的是空间上的并行问题。 空间上的并行导致了两类并行机的产生,按照Flynn的说法分为:单指令流多数据流(SIMD)和多指令流多数据流(MIMD)。我们常用的串行机也叫做单指令流单数据流(SISD)。,8.1 什么是多核并发(并行)程序设计,2022/12/12,5,8.1.3 什么是多核处理器?两个或多个独立
3、运行的内核集成于同一个处理器上面双核处理器 =一个处理器上包含2个内核多核处理器 = 一个处理器上包含2个或多个内核,8.1 什么是多核并发(并行)程序设计,2022/12/12,6,8.1 什么是多核并发(并行)程序设计,8.1.4 为什么要采用多核技术?,2022/12/12,7,8.1 什么是多核并发(并行)程序设计,最终目标: 提升用户的体验,摩尔定律 不断发展和改进处理器的性能最大限度地利用越来越多的晶体管实现最优的价值缩减处理时间,提高计算能力开发平台的新特性和新功能,2022/12/12,8,通过并行方式改进处理器的性能,8.1 什么是多核并发(并行)程序设计,2022/12/1
4、2,9,8.1 什么是多核并发(并行)程序设计,Pentium 4with HT,Dual Xeon Processors,Dual Core,2 Threads1 Package,2 Threads2 Packages,2 Threads1 Package,Two independent execution cores in the same processor,多核技术的发展,2022/12/12,10,几种不同的技术,HT Hyper Threading: 2 threads running on the same processor core处理器上的某些资源会被共享使用相同的缓存和运
5、算器DC Dual Core: 2 execution cores in the same processor package共享系统总线与双处理器的性能相同DP/MP Dual/Multi-Processing: 2 or more processors in the same system只共享系统总线,独立缓存高性能,资源冲突少,8.1 什么是多核并发(并行)程序设计,2022/12/12,11,8.1 什么是多核并发(并行)程序设计,双核技术 VS. 超线程技术双核是真正意义上的双处理器 不会发生资源冲突每个线程拥有自己的缓存、寄存器和运算器一个3.2GHz Smithfield在性能
6、上并非等同于3.2GHz P4 with HT 的2倍HT 使处理器的性能至少提升了1/3 双核的性能相当于2块 non-HT 处理器,2022/12/12,12,8.1 什么是多核并发(并行)程序设计Single core , With HT ( Eg. Pentium 4 Processor With HT )Integer and Floating Point Threads,L2 Cache and Control,L2 Cache and Control,L1 D-Cache and D-TLB,Schedulers,Integer,Trace Cache,Rename/Alloc,
7、uop Queues,BTB,uCodeROM,3,3,Decoder,BTB & I-TLB,FloatingPoint,2 threads can be executed at the same time (per processor) if theyre not competing for the same execution resource,2022/12/12,13,8.1 什么是多核并发(并行)程序设计Single core , With HT( Eg. Pentium 4 Processor with HT )Two Floating Point Threads,2 threa
8、ds CANNOT be executed at the same time (per processor) if theyre competing for the same execution resource (eg. 2 floating point threads in a P4P architecture),2022/12/12,14,8.1 什么是多核并发(并行)程序设计Dual core , Without HT( Eg. Pentium D Processor )Two Floating Point Threads,Even 2 floating pointthreads ca
9、n be executedat the same time now(per processor) as there are multiple floating point execution units,2022/12/12,15,8.1 什么是多核并发(并行)程序设计Dual core , With HT( Eg. Dual Core Pentium Processor Extreme Edition )Supports HTMultiple Integer and Floating Point Threads,With dual core & HT together, maximum #
10、of threads that can be executed at a time is 4 per processor,2022/12/12,16,多核技术与超线程技术的结合,产 量 多功能 功 效,Dual Core with Hyper-Threading4 threads/socket,Dual Core2 threads/socket,8.1 什么是多核并发(并行)程序设计,2022/12/12,17,AMD与Intel双核架构的对比,AMD Opteron双核架构示意图,Intel 奔腾至尊版双核架构示意图,8.1 什么是多核并发(并行)程序设计,2022/12/12,18,Dua
11、lCore、SMP、Cluster,8.1 什么是多核并发(并行)程序设计,2022/12/12,19,8.2 为什么要学习多核程序设计,8.2.1 背景:科学技术的发展呼唤巨大的、不断增长的计算能力中长期天气预报。每增加一天,要求计算速度增加一个数量级。三天 百万次/sec,四天 千万次/sec,五天亿次/sec信息战。关键是对信息的处理速度,如雷达信息的处理地震预报预测石油勘测生物信息处理,2022/12/12,20,8.2.2 提高计算能力的基本途径器件:新工艺(超大规模集成电路)新材料(生物计算机、光计算机)系统结构的改进:主要是克服Von Neumann的瓶颈问题。流水线计算机、向量
12、计算机、多处理机、并行计算机、集群。,8.2 为什么要学习多核程序设计,2022/12/12,21,8.2.3 现实状况计算能力几乎提高了上万倍,但是,实际的并行计算能力提高只有几十倍。原因:不能利用计算机的并行处理能力。也就是没有解决并行计算中的并行程序设计的问题。 其核心问题是并行算法,Back,8.2 为什么要学习多核程序设计,2022/12/12,22,8.3 多核并发(并行)程序设计环境 及开发方法,8.3.1 硬件系统并行计算机系统分类按指令与数据分SIMD,MIMD,SPMD,MPMD按存储方式分共享内存,分布式内存,分布式共享内存,2022/12/12,23,指令与数据SIMD
13、(Single-Instruction Multiple-Data),同时用相同的指令对不同的数据进行操作MIMD(Multiple-Instruction Multiple-Data),同时有多条指令对不同的数据进行操作SPMD(Single-Program Multuple-Data),同时执行相同的程序对不同数据操作MPMD(Multiple-Program Multuple-Data),同时有多个程序对不同的数据进行操作,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,24,存储方式,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,25,8.
14、3 多核并发(并行)程序设计环境及开发方法,8.3.2 软件系统开发人员已经设计并实现了一些有趣的编程模型,有助于开发并行应用程序,最流行的就是用于共享内存编程的OpenMP和用于分布式内存编程的MPI。,2022/12/12,26,.,8.3.2.1 共享内存编程的OpenMP OpenMP是一种工业标准的API设计规范,是由Sun、HP、IBM和Intel等多家顶级计算机厂商和软件开发商联手推出的,其目的在于为软件开发人员提供一种通用的规范,使其可以很方便地设计新并行应用程序或修改及并行化现有串行应用程序,从而利用配置了多处理器计算系统的共享内存。可移植性也是OpenMP的主要目标之一,使
15、用OpenMP开发的并行应用程序源代码可由支持OpenMP的任何编译器编译,且编译好的二进制代码可在目标硬件平台上运行,以获得出色的并行性能 。,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,27,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,28,8.3 多核并发(并行)程序设计环境及开发方法,最流行的本地编程语言Fortran和C/C+都支持OpenMP。上图给出了分别以C/C+和Fortran编写的简单OpenMP程序示例。在本例中,将y数组加到x数组这一循环迭代操作,是以并行方式执行的。源代码中的编译指示、指令和编程API调用表示了Ope
16、nMP的结构。OpenMP 的结构允许程序员指定并行区域、同步和数据作用域属性,它还支持用于指定运行时配置的环境变量,例如,环境变量OMP_NUM_THREADS指定了运行时所使用的工作线程的数量。,2022/12/12,29,8.3.2.2 分布式内存编程的MPI什么是MPI?是一个库而不是一门语言是一种标准或规范的代表而不特指某一个对它的具体实现是一种消息传递编程模型并成为这种编程模型的代表和事实上的标准对MPI的使用必须和特定的语言结合起来进行:C,JAVA,FORTRAN目前主要的MPI实现MPICH: http:/www-unix.mcs.anl.gov/mpi/mpichChimp
17、 : ftp:/ftp.epcc.ed.ac.uk/pub/packages/chimp/release/Lam : http:/www.mpi.nd.edu/lam/,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,30,MPI并行程序设计平台由标准消息传递函数及相关辅助函数构成,多个进程通过调用这些函数(类似调用子程序),进行通信;,一个程序同时启动多份,形成多个独立的进程, 在不同的处理机上运行,拥有独立的内存空间, 进程间通信通过调用MPI函数来实现;每个进程 开始执行时,将获得一个唯一的序号(rank)。 例如启动P个进程,序号依次为0,1,P-1;,MPI并行
18、进程的实现,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,31,消息传递是相对于进程间通信方式而言的,与具体并行机存储模式无关,任何支持进程间通信的并行机,均可支持消息传递并行程序设计;几乎有共享和分布存储并行计算环境均支持进程间的消息传递通信;,进程0发送一个整数给进程1;进程1将该数加1,传递给进程2;进程2再将该数加1,再传递给进程3;依次类推,最后,进程N-1将该数传递给进程0,由进程1负责广播该数给所有进程,并打印输出。,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,32,8.3 多核并发(并行)程序设计环境及开发方法,8.3.3 多核
19、并发(并行)开发方法PRAM 模型,BSP 模型,logP 模型,C3模型功能设计,分治设计,平衡树设计,倍增设计,2022/12/12,33,8.3.4 多核并发(并行)开发的四个阶段划分(Partitioning):分解成小的任务,开拓并发性;通讯(Communication) :确定诸任务间的数据交换,监测划分的合理性;组合(Agglomeration) :依据任务的局部性,组合成更大的任务;映射(Mapping) :将每个任务分配到处理器上,提高算法的性能。,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,34,PCAM设计过程,8.3 多核并发(并行)程序设计环
20、境及开发方法,2022/12/12,35,划分判据划分是否具有灵活性?划分是否避免了冗余计算和存储?划分任务尺寸是否大致相当?任务数与问题尺寸是否成比例?功能分解是一种更深层次的分解,是否合理?,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,36,通讯通讯是PCAM设计过程的重要阶段;划分产生的诸任务,一般不能完全独立执行,需要在任务间进行数据交流;从而产生了通讯;功能分解确定了诸任务之间的数据流;诸任务是并发执行的,通讯则限制了这种并发性;,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,37,通讯判据所有任务是否执行大致相当的通讯?是否尽可能的
21、局部通讯?通讯操作是否能并行执行?同步任务的计算能否并行执行?,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,38,组合组合是由抽象到具体的过程,是将组合的任务能在一类并行机上有效的执行;合并小尺寸任务,减少任务数。如果任务数恰好等于处理器数,则也完成了映射过程;通过增加任务的粒度和重复计算,可以减少通讯成本;保持映射和扩展的灵活性,降低软件工程成本;,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,39,组合判据增加粒度是否减少了通讯成本?重复计算是否已权衡了其得益?是否保持了灵活性和可扩放性?组合的任务数是否与问题尺寸成比例?是否保持了类似的计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多核 编程 技术 ppt 课件
链接地址:https://www.31ppt.com/p-1640785.html