1、多核并行计算Multicore Parallel Computing主讲人 徐 云国家高性能计算中心(合肥)22022-7-30并行计算结构算法编程 第一章第一章 并行计算机系统及其结构模型并行计算机系统及其结构模型国家高性能计算中心(合肥)32022-7-30第一章并行计算机系统及结构模型 1.1 并行计算并行计算国家高性能计算中心(合肥)42022-7-30并行计算、计算科学、计算需求国家高性能计算中心(合肥)52022-7-30第一章并行计算机系统及结构模型 1.2 并行计算机系统互连并行计算机系统互连国家高性能计算中心(合肥)62022-7-30系统互连局 部 总 线I/O总 线SCI
2、HiPPIMyrinet千 兆 位以 太 网光 纤通 道快 速 以 太 网以 太 网10 Base TFDDIATM总 线 或 开 关SANLANMANWAN100Gb/s10Gb/s1Gb/s100Mb/s10Mb/sIsoEnet网络带宽交 叉 开 关MIN 或100 Base T国家高性能计算中心(合肥)72022-7-30局部总线、I/O总线、SAN和LANPMI/O桥磁盘SAN(e.g.Myrinet)LAN(e.g.以太网,FDDI)系统 III/O总线,接口系统 I处理器总线局部总线,存储器总线SCSI节点 2节点N系统总线节点 1国家高性能计算中心(合肥)82022-7-30网
3、络性能指标国家高性能计算中心(合肥)92022-7-30静态互连网络 与动态互连网络国家高性能计算中心(合肥)102022-7-30静态互连网络(1)2/N国家高性能计算中心(合肥)112022-7-30静态互连网络(2))1(2NN1NN22/2NN2NN(a)2-D网孔(b)Illiac网孔(c)2-D环绕国家高性能计算中心(合肥)122022-7-30静态互连网络(3)1log2N2/N(a)二叉树(b)星形连接(c)二叉胖树国家高性能计算中心(合肥)132022-7-30静态互连网络(4)nN22/N(b)4-立 方(a)3-立 方(c)顶 点 代 之 以 环(d)3-立 方 环国家高
4、性能计算中心(合肥)142022-7-30嵌入(1)国家高性能计算中心(合肥)152022-7-30嵌入(2)10001001101110101100110111111110010001010111011000000001001100100 01 10 01 10 01 10 00 00 00 00 00 00 00 00 01 10 01 11 11 10 01 11 10 00 00 01 10 00 00 01 11 11 11 10 01 11 11 10 00 01 10 00 00 01 10 00 01 11 11 11 11 11 11 11 10 01 10 01 10 01
5、 10 01 11 1国家高性能计算中心(合肥)162022-7-30NNNNNN NN NN nN2kkN21N1N2/N)1(2N1N2/2N1log2N2/12kkNN2N22/N2/N)2/(kN1NN)(2NN N2N21N1N2/nN2/3N静态互连网络特性比较国家高性能计算中心(合肥)172022-7-30动态互连网络(1)L MI O C本 地 总 线高 速 缓 存C P UI FI FI F存 储 器 总 线存 储 器 单 元I FI FC P U 板存 储 器 板I/O 板通 信 板系 统 总 线(底 板 上)数 据 总 线缓 冲C CI O P数 据 总 线网 络(以 太
6、 网 等)磁 盘 和 磁 带部 件打 印 机或 绘 图 仪本 地 外 围 设 备(S C S I 总 线)M CI F缓 冲国家高性能计算中心(合肥)182022-7-30动态互连网络(2)国家高性能计算中心(合肥)192022-7-30动态互联网络(3)0101010101010101(a)4种可能的开关连接000001010011100101110111输入000001010011100101110111输出第0级第1级第2级(b)一种8输入的Omega网络国家高性能计算中心(合肥)202022-7-30动态互连网络(4)n2log22国家高性能计算中心(合肥)212022-7-30动态互
7、连网络比较)(wnO)log(wnnOk)(2wnO)/(nwfO)(wfO)(wfO)(wfO)log(nnOk国家高性能计算中心(合肥)222022-7-30标准互联网络(1)国家高性能计算中心(合肥)232022-7-30Myrinet连接的LAN/Cluster交换开关交换开关交换开关交换开关桌面主机机箱内多计算机机群多处理机机群网络RAM和VME 单板磁盘国家高性能计算中心(合肥)242022-7-30标准互连网络(2)国家高性能计算中心(合肥)252022-7-30使用HiPPI通道和开关构筑的LAN主干网 HiPPI交换开关超级计算机帧缓冲器RGB显示器HiPPI串行文件服务器工
8、作站小型机大规模并行处理系统25米300米25米25米HiPPI串行300米直至10千米300米HiPPI串行存储器服务器工作站光纤扩展器光纤扩展器HiPPI交换开关国家高性能计算中心(合肥)262022-7-30标准互连网络(3)国家高性能计算中心(合肥)272022-7-30双向FDDI环作为主干网 文件服务器数据库服务器计算机服务器双向 FDDI环FDDI集中器FDDI 集中器FDDI 集中器桌面计算机以太网集线器路由器国家高性能计算中心(合肥)282022-7-30标准互联网络(4)国家高性能计算中心(合肥)292022-7-30标准互连网络(5)国家高性能计算中心(合肥)302022
9、-7-30第一章并行计算机系统及结构模型 1.3 并行计算机系统结构并行计算机系统结构国家高性能计算中心(合肥)312022-7-30并行计算机结构模型(1)P/CLMNIC定制网络(c)MPPP/CLMNICMBMBVPSM交叉开关(a)PVPVPVPSMSMP/CSMSMI/O总线或交叉开关(b)SMPP/CP/CP/CLMNICDIRMB定制网络(d)DSMP/CLMNICDIRMBLDP/CMMBIOB(e)COWLDP/CMMBIOB商品网络(以太网,ATM,etc.)BridgeNICNICBridge国家高性能计算中心(合肥)322022-7-30并行计算机结构模型(2)SMPM
10、PPMPPWANLMDSMSM(h)Grid(Cluster of Clusters)SMPSMPSMPSAN/LANSMSMSMMPPMPPMPPSAN/LANDSMDSMDSM(f)SMP-Cluster(g)DSM-Cluster国家高性能计算中心(合肥)332022-7-30并行计算机结构模型(3)SISD computer-Von Neumanns modelSIMD computer国家高性能计算中心(合肥)342022-7-30并行计算机结构模型(4)Symmetric multiprocessor MIMD-SMMassively parallel processor MIMD
11、-DM国家高性能计算中心(合肥)352022-7-30并行计算机结构模型(5)Cluster of workstations MIMD-DM国家高性能计算中心(合肥)362022-7-30并行计算机体系合一结构 CPNIC(a)无 共 享NIC互 连 网 络MD节 点N节 点1Shell共 享 磁 盘CPNIC(b)共 享 磁 盘NICM互 连 网 络节 点N节 点1ShellCP互 连 网 络共 享 存 储 器共 享 磁 盘(c)共 享 存 储CPShellShell国家高性能计算中心(合肥)372022-7-30五种结构特性一览表属性PVPSMPMPPDSMCOW结构类型MIMDMIMDM
12、IMDMIMDMIMD处理器类型专用定制商用商用商用商用互连网络定制交叉开关总线、交叉开关定制网络定制网络商用网络(以太ATM)通信机制共享变量共享变量消息传递共享变量消息传递地址空间单地址空间单地址空间多地址空间单地址空间多地址空间系统存储器集中共享集中共享分布非共享分布共享分布非共享访存模型UMAUMANORMANUMANORMA代表机器Cray C-90,Cray T-90,银河1号IBM R50,S G I P o w e r Challenge,曙光1号Intel Paragon,IBMSP2,曙光1000/2000S t a n f o r d DASH,Cray T 3DB e
13、r k e l e y NOW,Alpha Farm国家高性能计算中心(合肥)382022-7-30并行计算机访存模型(1)P1P2PnI/OSM1SMm共享存储器处理器()系统互连总线 交叉开关多级,网络国家高性能计算中心(合肥)392022-7-30并行计算机访存模型(2)LM1P1LM2P2LMnPn互连网络(a)共享本地存储模型全局互连网络(b)层次式机群模型GSMGSMGSMPCINCSMPPCSMCSM群1PCINCSM群NPPCSMCSM国家高性能计算中心(合肥)402022-7-30并行计算机访存模型(3)互 连 网 络DCPDCPDCP国家高性能计算中心(合肥)412022-
14、7-30并行计算机访存模型(4)I/ONIC,DIR,RC系统互连网路MemP/CP/CI/ONIC,DIR,RCMemP/CP/C节点N节点1总线或交叉 开关总线或交叉 开关国家高性能计算中心(合肥)422022-7-30并行计算机访存模型(5)消息传递互连网络(网络,环网,超立方,立方环等)PMPMMPMPMPMPMPPMPMPM.国家高性能计算中心(合肥)432022-7-30构筑并行机系统的不同存储结构MIMDMIMD多计算机(多地址空间非共享存储器)(IBM SP2,DEC TruClusterTandem Hymalaya,HP,Microsoft Wolfpack,etc)NOR
15、MANORMAUMAUMANUMANUMAClusterClusterMPPMPP(Intel TFLOPS)紧耦合PVPPVP(Cray T90)SMPSMP(Intel SHV,SunFire,DEC 8400,SGI PowerChallenge,IBMR60,etc.)COMACOMA(KSR-1,DDM)CC-NUMACC-NUMA(Stanford Dash,SGI Origin 2000,Sequent NUMA-Q,HP/Convex Exemplar)NCC-NUMANCC-NUMA(Cray T3E)DSMDSM(TreadMarks,Wind Tunnel,IVY,Shr
16、imp,etc.)()松散耦合()中央存储器分布存储器多处理机单地址共享()空间存储器国家高性能计算中心(合肥)442022-7-30第一章并行计算机系统及结构模型 1.4 多核处理器架构多核处理器架构国家高性能计算中心(合肥)452022-7-30什么是多核处理器?国家高性能计算中心(合肥)462022-7-30为什么要采用多核技术?国家高性能计算中心(合肥)472022-7-30通过并行方式改进处理器的性能国家高性能计算中心(合肥)482022-7-30ILP、TLP与超标量技术(1)国家高性能计算中心(合肥)492022-7-30ILP、TLP与超标量技术(2)国家高性能计算中心(合肥)
17、502022-7-30Intel多核技术的发展国家高性能计算中心(合肥)512022-7-30几种不同的技术国家高性能计算中心(合肥)522022-7-30双核技术 VS.超线程技术Single core,With HT(Eg.Pentium 4 Processor With HT)Integer and Floating Point ThreadsL2 Cache and ControlL2 Cache and Control L1 D-Cache and D-TLBSchedulersIntegerTrace CacheRename/Allocuop QueuesBTBuCodeROM33
18、DecoderBTB&I-TLBFloatingPoint2 threads can be executed at the same time(per processor)if theyre not competing for the same execution resourceSingle core,With HT(Eg.Pentium 4 Processor With HT)Two Floating Point ThreadsL2 Cache and ControlL2 Cache and Control L1 D-Cache and D-TLBSchedulersIntegerTrac
19、e CacheRename/Allocuop QueuesBTBuCodeROM33DecoderBTB&I-TLBFloatingPoint2 threads 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)Dual core,Without HT(Eg.Pentium D Processor)Two Floating Point Thre
20、adsL2 Cache and ControlL2 Cache and Control L1 D-Cache and D-TLBSchedulersIntegerTrace CacheRename/Allocuop QueuesBTBuCodeROM33DecoderBTB&I-TLBFloatingPointL2 Cache and ControlL2 Cache and Control L1 D-Cache and D-TLBSchedulersIntegerTrace CacheRename/Allocuop QueuesBTBuCodeROM33DecoderBTB&I-TLBFloa
21、tingPointEven 2 floating pointthreads can be executedat the same time now(per processor)as there are multiple floating point execution unitsDual core,With HT(Eg.Dual Core Pentium Processor Extreme Edition)Supports HTMultiple Integer and Floating Point ThreadsL2 Cache and ControlL2 Cache and Control
22、L1 D-Cache and D-TLBSchedulersIntegerTrace CacheRename/Allocuop QueuesBTBuCodeROM33DecoderBTB&I-TLBFloatingPointL2 Cache and ControlL2 Cache and Control L1 D-Cache and D-TLBSchedulersIntegerTrace CacheRename/Allocuop QueuesBTBuCodeROM33DecoderBTB&I-TLBFloatingPointWith dual core&HT together,maximum#
23、of threads that can be executed at a time is 4 per processor国家高性能计算中心(合肥)572022-7-30多核技术与超线程技术的结合Dual Core with Hyper-Threading4 threads/socket Dual Core2 threads/socket 国家高性能计算中心(合肥)582022-7-30AMD与Intel双核架构的对比 国家高性能计算中心(合肥)592022-7-30The cache coherence problemcache一致性问题国家高性能计算中心(合肥)602022-7-30The
24、cache coherence problemCore 1Core 2Core 3Core 4One or more levels of cacheOne or more levels of cacheOne or more levels of cacheOne or more levels of cacheMain memoryx=15213multi-core chip国家高性能计算中心(合肥)612022-7-30The cache coherence problemCore 1Core 2Core 3Core 4One or more levels of cachex=15213One
25、 or more levels of cacheOne or more levels of cacheOne or more levels of cacheMain memoryx=15213multi-core chip国家高性能计算中心(合肥)622022-7-30The cache coherence problemCore 1Core 2Core 3Core 4One or more levels of cachex=15213One or more levels of cachex=15213One or more levels of cacheOne or more levels
26、of cacheMain memoryx=15213multi-core chip国家高性能计算中心(合肥)632022-7-30The cache coherence problemCore 1Core 2Core 3Core 4One or more levels of cachex=21660One or more levels of cachex=15213One or more levels of cacheOne or more levels of cacheMain memoryx=21660multi-core chipassuming write-through caches
27、国家高性能计算中心(合肥)642022-7-30The cache coherence problemCore 1Core 2Core 3Core 4One or more levels of cachex=21660One or more levels of cachex=15213One or more levels of cacheOne or more levels of cacheMain memoryx=21660multi-core chip国家高性能计算中心(合肥)652022-7-30Solutions for cache coherence国家高性能计算中心(合肥)6620
28、22-7-30Inter-core busCore 1Core 2Core 3Core 4One or more levels of cacheOne or more levels of cacheOne or more levels of cacheOne or more levels of cacheMain memorymulti-core chipinter-corebus国家高性能计算中心(合肥)672022-7-30Invalidation protocol with snooping国家高性能计算中心(合肥)682022-7-30The cache coherence probl
29、emCore 1Core 2Core 3Core 4One or more levels of cachex=15213One or more levels of cachex=15213One or more levels of cacheOne or more levels of cacheMain memoryx=15213multi-core chip国家高性能计算中心(合肥)692022-7-30The cache coherence problemCore 1Core 2Core 3Core 4One or more levels of cachex=21660One or mor
30、e levels of cachex=15213One or more levels of cacheOne or more levels of cacheMain memoryx=21660multi-core chipassuming write-through cachesINVALIDATEDsendsinvalidationrequestinter-corebus国家高性能计算中心(合肥)702022-7-30The cache coherence problemCore 1Core 2Core 3Core 4One or more levels of cachex=21660One
31、 or more levels of cacheOne or more levels of cacheOne or more levels of cacheMain memoryx=21660multi-core chip国家高性能计算中心(合肥)712022-7-30The cache coherence problemCore 1Core 2Core 3Core 4One or more levels of cachex=21660One or more levels of cachex=21660One or more levels of cacheOne or more levels
32、of cacheMain memoryx=21660multi-core chip国家高性能计算中心(合肥)722022-7-30Alternative to invalidate protocol:update protocolCore 1Core 2Core 3Core 4One or more levels of cachex=21660One or more levels of cachex=21660One or more levels of cacheOne or more levels of cacheMain memoryx=21660multi-core chipassuming write-through cachesUPDATEDbroadcastsupdatedvalueinter-corebus国家高性能计算中心(合肥)732022-7-30Which do you think is better?Invalidation or update?国家高性能计算中心(合肥)742022-7-30Invalidation vs update国家高性能计算中心(合肥)752022-7-30DualCore、SMP、Cluster