1多核处理器体系结构及并行程序设计天津大学于策yuce_air@yahoo.com.cn•多核处理器简介•并行程序设计方法学(PCAM)•科研及技术(天津大学SRDC及IBM技术中心)•多核处理器简介•并行程序设计方法学(PCAM)•科研及技术(天津大学SRDC及IBM技术中心)什么是多核处理器?•两个或多个独立运行的内核集成于同一个处理器上面–双核处理器=一个处理器上包含2个内核–多核处理器=一个处理器上包含2个或多个内核Core0Core1FrontSideBus为什么要采用多核技术?最终目标:提升用户的体验•摩尔定律——不断发展和改进处理器的性能•最大限度地利用越来越多的晶体管–实现最优的价值–缩减处理时间,提高计算能力–开发平台的新特性和新功能通过并行方式改进处理器的性能2005+Dual-andMulti-core2-waySMPsystem4Cores4Threads2001Hyper-Threading2-waySMPsystem2Cores4Threads1995Multi-processing2-waySMPsystem2Cores2Threads多核技术的发展CacheExecutionStateStateBusCacheExecutionStateBusCacheExecutionStateBusCacheExecutionStateBusCacheExecutionStateBusPentium4withHTDualXeonProcessorsDualCore2Threads1Package2Threads2Packages2Threads1PackageTwoindependentexecutioncoresinthesameprocessor几种不同的技术•HT–HyperThreading:2threadsrunningonthesameprocessorcore–处理器上的某些资源会被共享–使用相同的缓存和运算器•DC–DualCore:2executioncoresinthesameprocessorpackage–共享系统总线–与双处理器的性能相同•DP/MP–Dual/Multi-Processing:2ormoreprocessorsinthesamesystem–只共享系统总线,独立缓存–高性能,资源冲突少双核技术VS.超线程技术•双核是真正意义上的双处理器–不会发生资源冲突–每个线程拥有自己的缓存、寄存器和运算器•一个3.2GHzSmithfiled在性能上并非等同于3.2GHzP4withHT的2倍–HT使处理器的性能至少提升了1/3–双核的性能相当于2块non-HT处理器•双核技术与HT技术在性能上的对比•Ex1:两个floatingpoint线程(Smithfieldclient)–每个线程拥有自己的FPU,没有资源冲突–尽管性能上没有提升太多,但仍然优于HT•Ex2:一个integer线程与一个floatingpoint线程–性能大幅度提升–没有资源冲突(Eg.Pentium4ProcessorWithHT)IntegerandFloatingPointThreadsL2CacheandControlL2CacheandControlL1D-CacheandD-TLBSchedulersIntegerTraceCacheRename/AllocuopQueuesBTBuCodeROM33DecoderBTB&I-TLBFloatingPoint2threadscanbeexecutedatthesametime(perprocessor)ifthey’renotcompetingforthesameexecutionresource(Eg.Pentium4ProcessorwithHT)TwoFloatingPointThreadsL2CacheandControlL2CacheandControlL1D-CacheandD-TLBSchedulersIntegerTraceCacheRename/AllocuopQueuesBTBuCodeROM33DecoderBTB&I-TLBFloatingPoint2threadsCANNOTbeexecutedatthesametime(perprocessor)ifthey’recompetingforthesameexecutionresource(eg.2floatingpointthreadsinaP4Parchitecture)(Eg.PentiumDProcessor)TwoFloatingPointThreadsL2CacheandControlL2CacheandControlL1D-CacheandD-TLBSchedulersIntegerTraceCacheRename/AllocuopQueuesBTBuCodeROM33DecoderBTB&I-TLBFloatingPointL2CacheandControlL2CacheandControlL1D-CacheandD-TLBSchedulersIntegerTraceCacheRename/AllocuopQueuesBTBuCodeROM33DecoderBTB&I-TLBFloatingPointEven2floatingpointthreadscanbeexecutedatthesametimenow(perprocessor)astherearemultiplefloatingpointexecutionunits(Eg.DualCorePentiumProcessorExtremeEdition)SupportsHTMultipleIntegerandFloatingPointThreadsL2CacheandControlL2CacheandControlL1D-CacheandD-TLBSchedulersIntegerTraceCacheRename/AllocuopQueuesBTBuCodeROM33DecoderBTB&I-TLBFloatingPointL2CacheandControlL2CacheandControlL1D-CacheandD-TLBSchedulersIntegerTraceCacheRename/AllocuopQueuesBTBuCodeROM33DecoderBTB&I-TLBFloatingPointWithdualcore&HTtogether,maximum#ofthreadsthatcanbeexecutedatatimeis4perprocessor多核技术与超线程技术的结合产量…多功能…功效Core0Core1FrontSideBusDualCorewithHyper-Threading4threads/socketCore0Core1FrontSideBusDualCore2threads/socket与Intel双核架构的对比AMDOpteron双核架构示意图Intel奔腾至尊版双核架构示意图多核面临的困难•如何计算软件授权?–按CPU个数收取软件授权费用–按芯片个数收取软件授权费用•应用软件是否支持?–如果应用程序是基于多处理器编写的–如果应用程序是基于单处理器编写的•双核发热大,散热是难题、SMP、Cluster体系结构特性SMP(对称多处理机)Cluster(集群)DualCore处理器单一主机,多个处理器多台主机,有各自的处理器(一或多)单一主机,单一处理器,多个核心操作系统单一多个单一主要并行计算方式多进程,内存共享多进程,基于消息传递多线程•多核处理器简介•并行程序设计方法学(PCAM)•科研及技术(天津大学SRDC及IBM技术中心)设计方法学•划分(Partitioning)•通讯(Communication)•组合(Agglomeration)•映射(Mapping)设计方法学•设计并行算法的四个阶段–划分(Partitioning)–通讯(Communication)–组合(Agglomeration)–映射(Mapping)•划分:分解成小的任务,开拓并发性;•通讯:确定诸任务间的数据交换,监测划分的合理性;•组合:依据任务的局部性,组合成更大的任务;•映射:将每个任务分配到处理器上,提高算法的性能。设计过程问题划分映射组合通信域分解•划分的对象是数据,可以是算法的输入数据、中间处理数据和输出数据;•将数据分解成大致相等的小数据片;•划分时考虑数据上的相应操作;•如果一个任务需要别的任务中的数据,则会产生任务间的通讯;域分解•示例:三维网格的域分解,各格点上计算都是重复的。下图是三种分解方法:图7.2‐1D‐2D‐3D功能分解•划分的对象是计算,将计算划分为不同的任务,其出发点不同于域分解;•划分后,研究不同任务所需的数据。如果这些数据不