1、并行计算Parallel Computing基本概念2022-7-302如何满足不断增长的计算力需求?n用速度更快的硬件,也就是减少每一条指令所需时间n优化算法(或者优化编译)n用多个处理机用多个处理机(器器)同时解决一个问题同时解决一个问题q并行计算并行计算2022-7-303串行计算与并行计算2022-7-304并行的层次n程序级并行程序级并行n子程序级并行子程序级并行n语句级并行n操作级并行n微操作级并行并行粒度粗细2022-7-305FLOPSnFloating point number Operations Per Second-每个时钟周期执行浮点运算的次数 n理论峰值CPU主频每
2、时钟周期执行浮点运算数CPU数目n部分处理器每时钟周期执行浮点运算数:2022-7-306www.top500.org2022-7-307Top5002007年11月n高居榜首的依然是来自高居榜首的依然是来自IBM的的“蓝色基因蓝色基因/L”。自从2004年11月以来,该系统已经连续三年遥遥领先连续三年遥遥领先,而且计算能力不断提升,Linpack基准测试性能基准测试性能478.2 TFlop/s(每秒478.2万亿次运算),而半年前还是280.6 TFlop/s n拿下亚军位置的还是IBM,不过换成了一台落成不久的“蓝色基因蓝色基因/P”。位于德国尤里希研究中心的这套新系统运算能力167.3
3、 TFlop/s,不过按照IBM的设计规划,蓝色基因/P的性能将有望突破1 TFlop/s大关,即每秒一千万亿次运算。2022-7-308Top5002007年11月n第三名也是个新面孔,同时也是新墨西哥墨西哥计算应用中心(NMCAC)的第一套超级计算机,由SGI基于Altix ICE 8200打造,计算能力126.9 TFlop/s。n同时印度史上首次杀入了印度史上首次杀入了TOP10行列行列,印度计算研究实验室的HP Cluster Platform 3000 BL460c以117.9 TFlop/s的性能拿到了第四位 2022-7-309供应商系统数量2022-7-3010供应商计算能力
4、2022-7-3011国家分布系统数量2022-7-3012国家分布计算能力2022-7-3013体系结构系统数量2022-7-3014体系结构计算能力2022-7-3015应用领域系统数量2022-7-3016应用领域计算能力2022-7-3017操作系统系统数量2022-7-3018操作系统计算能力2022-7-3019处理器家族系统数量2022-7-3020处理器家族计算能力2022-7-3021系统数量2022-7-3022计算能力2022-7-30232007年中国高性能计算机性能年中国高性能计算机性能TOP100 2022-7-3024并行化方法n域分解(Domain decomp
5、osition)n任务分解(Task decomposition)n流水线(Pipelining)2022-7-3025域分解nFirst,decide how data elements should be divided among processorsnSecond,decide which tasks each processor should be doingnExample:Vector addition2022-7-3026域分解Find the largest element of an array2022-7-3027域分解Find the largest element o
6、f an arrayCPU 0CPU 1CPU 2CPU 32022-7-3028域分解Find the largest element of an arrayCPU 0CPU 1CPU 2CPU 32022-7-3029域分解Find the largest element of an arrayCPU 0CPU 1CPU 2CPU 32022-7-3030域分解Find the largest element of an arrayCPU 0CPU 1CPU 2CPU 32022-7-3031域分解Find the largest element of an arrayCPU 0CPU 1
7、CPU 2CPU 32022-7-3032域分解Find the largest element of an arrayCPU 0CPU 1CPU 2CPU 32022-7-3033域分解Find the largest element of an arrayCPU 0CPU 1CPU 2CPU 32022-7-3034域分解Find the largest element of an arrayCPU 0CPU 1CPU 2CPU 32022-7-3035域分解Find the largest element of an arrayCPU 0CPU 1CPU 2CPU 32022-7-303
8、6域分解Find the largest element of an arrayCPU 0CPU 1CPU 2CPU 32022-7-3037域分解Find the largest element of an arrayCPU 0CPU 1CPU 2CPU 32022-7-3038任务(功能)分解nFirst,divide tasks among processorsnSecond,decide which data elements are going to be accessed(read and/or written)by which processorsnExample:Event-h
9、andler for GUI2022-7-3039任务分解f()s()r()q()h()g()2022-7-3040任务分解f()s()r()q()h()g()CPU 0CPU 2CPU 12022-7-3041任务分解f()s()r()q()h()g()CPU 0CPU 2CPU 12022-7-3042任务分解f()s()r()q()h()g()CPU 0CPU 2CPU 12022-7-3043任务分解f()s()r()q()h()g()CPU 0CPU 2CPU 12022-7-3044任务分解f()s()r()q()h()g()CPU 0CPU 2CPU 12022-7-3045流水
10、线nSpecial kind of task decompositionn“Assembly line”parallelismnExample:3D rendering in computer graphicsRasterizeClipProjectModelInputOutput2022-7-3046Processing One Data Set(Step 1)RasterizeClipProjectModel2022-7-3047Processing One Data Set(Step 2)RasterizeClipProjectModel2022-7-3048Processing One
11、 Data Set(Step 3)RasterizeClipProjectModel2022-7-3049Processing One Data Set(Step 4)RasterizeClipProjectModelThe pipeline processes 1 data set in 4 steps2022-7-3050Processing Two Data Sets(Step 1)RasterizeClipProjectModel2022-7-3051Processing Two Data Sets(Time 2)RasterizeClipProjectModel2022-7-3052
12、Processing Two Data Sets(Step 3)RasterizeClipProjectModel2022-7-3053Processing Two Data Sets(Step 4)RasterizeClipProjectModel2022-7-3054Processing Two Data Sets(Step 5)RasterizeClipProjectModelThe pipeline processes 2 data sets in 5 steps2022-7-3055Pipelining Five Data Sets(Step 1)Data set 0Data set
13、 1Data set 2Data set 3Data set 4CPU 0CPU 1CPU 2CPU 32022-7-3056Pipelining Five Data Sets(Step 2)Data set 0Data set 1Data set 2Data set 3Data set 4CPU 0CPU 1CPU 2CPU 32022-7-3057Pipelining Five Data Sets(Step 3)Data set 0Data set 1Data set 2Data set 3Data set 4CPU 0CPU 1CPU 2CPU 32022-7-3058Pipelinin
14、g Five Data Sets(Step 4)Data set 0Data set 1Data set 2Data set 3Data set 4CPU 0CPU 1CPU 2CPU 32022-7-3059Pipelining Five Data Sets(Step 5)Data set 0Data set 1Data set 2Data set 3Data set 4CPU 0CPU 1CPU 2CPU 32022-7-3060Pipelining Five Data Sets(Step 6)Data set 0Data set 1Data set 2Data set 3Data set 4CPU 0CPU 1CPU 2CPU 32022-7-3061Pipelining Five Data Sets(Step 7)Data set 0Data set 1Data set 2Data set 3Data set 4CPU 0CPU 1CPU 2CPU 32022-7-3062Pipelining Five Data Sets(Step 8)Data set 0Data set 1Data set 2Data set 3Data set 4CPU 0CPU 1CPU 2CPU 3