并行程序设计讲稿.ppt
《并行程序设计讲稿.ppt》由会员分享,可在线阅读,更多相关《并行程序设计讲稿.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、并行程序设计第一页,讲稿共四十七页哦什么是并行计算?n通过计算机硬件和软件协作,同时执行多个数据运算的一种计算模式n提高计算效率,包括提高计算速度、以及降低数据处理的成本n四种不同粒度/层次的并行计算n微指令级(SSE:streaming SIMD extensions):向量处理指令n指令级(ILP:instruction-level parallelism):一颗core微处理器,有3个ALU、2个FPU、3个SSEn超标量技术:依靠微处理器体系结构技术,动态调整指令流的顺序,一次发射多条指令,主流处理器几乎都采用的技术n超长指令字技术:编译时将多条普通指令组装成“超级指令”,比如IA微处
2、理器n线程级(TLP:thread-level parallelism):由程序将计算任务划分成可以同时执行的操作序列,每个操作序列分别由不同的处理器执行内核来处理n进程级:由程序将计算任务划分成可以独立分配计算资源的子任务,每个子任务分别由不同的计算机系统来处理第二页,讲稿共四十七页哦并行程序与并行计算机n串行程序:将计算任务分解成标量操作的序列的程序。串行串行程序是可以并行执行的程序是可以并行执行的n被编译器编译成面向SIMD的指令n被编译器编译成面向VLIW 指令n由支持superscalar技术的处理器执行n并行程序:显式表达计算任务中各数据运算无关性的程序n并行计算机:能够同时执行并
3、行程序中无关数据运算的计算机n采用向量处理器n一条指令完成多个数据单元的处理n提供多个互相独立的处理执行核:每个执行核分别执行自己的指令流n多处理器系统:Multi-core/SMP/CPU+Coprocessorn多计算机系统:MPP/Cluster/Grid/Cloud第三页,讲稿共四十七页哦并行程序的开发与并行计算串行程序串行程序程序员程序员串行编译串行编译串行程序串行程序串行处理器串行处理器串行串行执行执行超标量超标量处理器处理器并行并行执行执行 并行编译并行编译SIMD并行程序并行程序SIMD处理器处理器并行并行执行执行VLIW并行程序并行程序VLIW处处理器理器并行并行执行执行线程
4、并行程序线程并行程序多处理多处理器系统器系统并行并行执行执行进程并行程序进程并行程序多计算多计算机系统机系统并行并行执行执行线程线程并行并行程序程序进程进程并行并行程序程序编编译译编编译译第四页,讲稿共四十七页哦我们一直在不自觉的使用并行计算技术来提升计算效能n当前几乎所有的计算机都是并行计算机:多核当前几乎所有的计算机都是并行计算机:多核/微处理器内多个执行单元微处理器内多个执行单元/SIMD指指令令n几乎每个程序运行时都在执行并行计算:几乎每个程序运行时都在执行并行计算:专家们专家们(体系结构体系结构/编译编译/操作系统操作系统)一直在替一直在替我们做并行技术的开发和运用我们做并行技术的开
5、发和运用n指令级并行:提高同时执行的指令数缩短指令流的执行时间程序执行效率的提程序执行效率的提升升n指令的基本执行过程:instruction fetch decode execute memory access write backn每个过程分别是由不同的部件执行n通过流水,使得多条指令同时执行,每条指令分别处于不同的执行阶段:依靠pre-fetch/re-order等技术n提供多个执行单元,支持多条指令流水同时执行n数据级并行(data-level parallelism)和任务级并行(task-level parallelism):提高同时执行的线程数用户工作效率的提升用户工作效率的提升
6、(同时做多件事情同时做多件事情,互不耽搁互不耽搁)n基本技术支撑:interrupt/lock/hyper-threading/nCache/virtual memory/disk file:执行一个线程,总会发生数据访问失效第五页,讲稿共四十七页哦为什么要程序员编写并行程序?n并行计算机:提升计算系统计算潜力的必然趋势nFrequency wall:物理上限n指令流的执行时间下限nMemory wall:CPU与Memory的速度鸿沟n指令级并行的流水深度限制nPower wall:P=C(电容/晶体管的数量)V2(电压)F(频率)n单个芯片的计算潜力上限nMulti-core:提升单个芯片
7、计算潜力的必然选择,n保持Moores law:增加执行核(用于数据运算的晶体管的数量),降低主频n提高用于数据运算的晶体管的比率:降低指令级并行的流水深度n提高晶体管的利用率:执行核之间按需共享cache/FBIn挖掘处理器的计算潜力:提高芯片内用于数据处理的晶体管的比率n微指令级并行(SIMD):提高计算机的字长n一次解码,处理更多的数据n例如core微处理器的SSE指令采用128bit寄存器,一个指令周期可处理4个float数n数据级并行(data-level parallelism)和任务级并行(task-level parallelism):multi-core,支持多个指令流同时处
8、于数据运算阶段第六页,讲稿共四十七页哦n如何提高数据处理的效率:n利用多个执行核分摊数据处理任务n指令级并行/提高主频:缩短指令流的执行时间n并行程序:缩短指令流的长度n数据级并行/任务级并行:同时执行多个短的指令流n向量计算:提高单条指令的数据处理量n处理器的主导技术已由提高处理器主频转向n多核技术多核技术n指令流的执行时间延长了n同时执行的指令流数量增加了n专用协处理器技术(X86指令集包括近300条指令,科学计算只需要其中的约80条指令)n提高用于数据处理的晶体管的比率n提高晶体管的利用率n可重构计算技术(FPGA):由应用程序动态将芯片定制成专用协处理器n单个数据处理部件的运算速度有上
9、限:frequency walln多核时代,计算平台的关键特征:不是单个执行核的性能提升了,而是可利用的执行核的数量提升了第七页,讲稿共四十七页哦n如何处理更大规模的问题,即:如何在可接受的时间里完成更大规模数据的处理?例如n电信计费n网络搜索n视频点播n地震现象反演:有限元法,地震区域的10m10m10m作为一个粒子,模拟这些粒子在地震前后的运动轨迹n一台计算机的服务能力有上限:n处理器:计算能力(处理器的数量、处理器内执行核的数量)n内存:容量/访问速度和带宽n磁盘及IO:容量/访问速度和带宽n数据级并行(data-level parallelism)和任务级并行(task-level p
10、arallelism)n多台计算机协作n面向领域/应用的并行计算机/协处理器(如GPU)/可重构计算(FPGA)第八页,讲稿共四十七页哦编译技术/微处理器体系结构技术不足以开发并行计算机的计算能力nVLIW/superscalar:适合开发微处理器内部各个执行单元的并行能力n编译技术:发现串行程序中无关的数据运算n串行程序:隐藏了计算任务的数据运算无关性n分析问题的数学/物理模型n设计串行算法n用串行语言编码算法n例如:寻找N以内的素数,该如何并行?prime0=2;prime1=3;p=2;for(i=5;iN;i=i+2)for(j=1;jp;j+)if(i%primej=0)break;
11、if(jp)break;primep=i;p+;第九页,讲稿共四十七页哦并行程序设计n以问题分解为基础,开发面向并行计算机的程序:通过多颗处理器协作、以及挖掘处理器的计算潜力,达到加速数据处理的效率和提高问题求解的规模的目标n手段n挖掘每个处理器的计算潜力n提供更多的并行线程,避免由于内存壁垒等因素导致执行单元处于空等待状态n微指令级并行(向量计算),提高单条指令的数据处理量n多个处理器协作,分摊计算任务:缩短每个指令流的长度n多计算机间数据划分:增加存储容量n目标n加速数据处理的效率n提高问题求解的规模n并行程序设计(本门课程)关注:发现计算任务中无关的数据运算,并利用数据运算的无关性开发并
12、行计算机的计算能力n向量处理器/阵列处理器系统n多处理器系统n多计算机系统第十页,讲稿共四十七页哦多核时代:当多核处理器给用户相应提高的性能体验时,才真正到了多核时代n计算平台可为程序的运行提供多个执行核n多核时代不等于多核处理器时代n如何获得多个执行核?n多核处理器nSMP/CPU+Coprocessor(专用协处理器/FPGA)nCluster/MPPnGrid/Cloudn大多数人并没有多个执行核协同计算多个执行核协同计算(并行计算)的体会n计算机专业的整个本科教学,都是基于Von Neumann,仅在操作系统、体系结构里提到一点并行和并发的概念n使用的应用软件也基本是基于串行技术:对计
13、算性能的体验并未改进,甚至有所下降n串行程序+降低了主频和指令流水深度的多核处理器n更复杂的操作系统:多线程支持/早先的超线程技术n操作系统程序与用户程序同时运行:Cache、FBI的瓶颈效应nn可以在一台机器上同时运行几个程序:多核处理器之前已经如此n操作系统的多进程/多线程/超线程支持技术n用于超级计算机(Cluster/MPP)的HTC(high-throughput computing)第十一页,讲稿共四十七页哦多核时代的特点n已经具备的特点:并行计算机不再与“昂贵”、“高性能”有必然联系,从体系结构上看,我们所使用的都是并行计算机n支持SSE的多核CPU+GPU(每个GPU是一个微处
14、理器阵列)nCPU的微处理器内核包括多个执行单元,采用了superscalar/VLIW技术n尚不具备的特点:体验并行计算机对计算性能的提升效果n数据处理的速度更快n可处理的数据规模更大n挑战性问题:并行程序的可移植性(衡量程序算法/代码与目标平台体系结构的紧密程度),来自并行计算平台的异构性nIntel/AMD处理器:CPU+CPUnIBM CELL处理器:CPU+Coprocessorn多处理器系统:SMP/(CPU+Coprocessor)/(CPU+FGPA)n多计算机系统:Cluster/MPP/Grid/Cloudn编程人员:“傻瓜”还是“精英”n“傻瓜”:知道语法就够了,其他事情
15、交给编译、运行支持去做吧n“精英”:我能,但只有我能;我能,但我只会这一点n尽管都是面向流媒体计算nCPU中的SSE:SIMD,向量指令nGPU:阵列处理器,线程并行编程(CUDA)第十二页,讲稿共四十七页哦新软件危机n硬件上多核、软件上串行n大量的晶体管闲置、使用效率不高n主频的降低,导致性能体验的下降n性能,再次成为编程技术的焦点:线程级并行对开发多核处理器的计算能力至关重要n性能,依赖“精英”们实现n体系结构的特征n数学/物理模型中的计算并行性特征并行算法n编写程序:既要做“经理”,又要做“业务员”n“业务员”:完成数据处理n“经理”:“业务员”的分工、协调(在单核处理器时代,可以由编译
16、技术/微处理器体系结构技术自动解决)n能以来自动机理论(运行时支持)、形式化理论(编译技术)代替“精英”吗?n能:当这个问题很简单时n不能:并行算法设计是“艺术性”、而非“技术性”的工作。请将一个求素数的串行程序并行化吧。并行程序设计:少数人的专利、编程人员的基本要求?第十三页,讲稿共四十七页哦内容提要n课程基本信息n对并行计算的认识n并行计算的概念n并行计算平台n并行计算技术的使用n问题是什么?n课程目标与定位n教学安排第十四页,讲稿共四十七页哦课程相关信息n成绩评定:平时成绩(50%)+max兴趣研究报告,期末笔试n平时练习、编程实验:50分n兴趣研究报告:50分。1-3人一组,自选题目,
17、题目来源:n所在研究组面临的计算性能需求,结合课程学习,提出解决方案n所在课题组正在解决的计算性能/计算效能方面的技术问题,结合课程学习,提出并行处理技术对该问题的促进n高性能/高效能/云计算领域中感兴趣的前沿研究方向,结合课程学习,开展调研,给出该方向的研究进展、趋势和评价n期末考试:50分n课程网页http:/第十五页,讲稿共四十七页哦课程历史与内容沿革n1999-2002年,李晓明nMPI、HPF、OpenMP、并行编译n集群、MPP、SMPn2003年开始,余华山n2005年nMPI、OpenMP、并行算法设计与应用实例、基于网络的并行处理n集群、MPP、SMP、网格n2007年:教育
18、部-Intel精品课程建设项目nMPI、pthread与Intel多核技术、并行算法设计与应用实例、OpenMP、基于网络的并行处理n多核、SMP、集群、MPP、网格n2008年:教育部-IBM精品课程建设项目npthread与Intel多核技术、CELL BE技术、MPI、并行算法设计与应用实例、基于网络的并行处理(网格)n多核、SMP、集群、MPP、网格第十六页,讲稿共四十七页哦n2011年:北京大学研究生课程建设n以出版为目标的讲义n完成一章,在课程网站发布一章第十七页,讲稿共四十七页哦并行程序设计的基本概念n“并行程序”:支持多个操作、或者任务同时执行的一种规规划划n做事情,总要规划动
19、作的顺序:确定房子的地址、设计结构图、作预算、选择施工者、规划施工进度、买建筑材料和施工。n规划的关键是分析问题各个部分之间的内在联系,任何规划都不能破坏这个联系n总有一些部分之间是没有内在联系的,可以同时执行:房屋建筑的第一阶段施工、购买第二阶段建筑材料n什么是并行程序设计:以任务分解任务分解为基础,开发面向并行计并行计算机算机的应用程序,以提高数据处理的效率数据处理的效率、或者提高可解问可解问题的规模题的规模.n计算平台:支持同时执行多个数据处理运算(提供多个执行核/向量处理器)n操作系统:支持多指令流调度(多核处理器计算平台)、或者多数据流访问(向量处理器平台)n编程语言(以及编译运行系
20、统):支持计算并行性的表达第十八页,讲稿共四十七页哦并行计算有什么用途n并非所有问题都需要使用并行计算技术并非所有问题都需要使用并行计算技术n写WORD文档、写C/C+程序代码n一个字符、一个字符地从键盘输入n即使用最低端的机器,没有人感觉到不能及时得到响应(你同时打开了很多文档、再边听MP3除外)n使用Google、Baidu搜索网页n时刻都有成千上万的用户在搜索n有兴趣吗?对比一下从Google、Baidu得到的响应速度、在一台高端服务器上模拟100个用户搜索1,000,000条记录的响应速度n汶川地震研究:反演地震过程,整个中国几乎都有震感n震区离散化,每10个立方米作为一个粒子n使用当
21、今运算速度最快的处理器,对这个三维数组做一次最简单的运算,比如对每个元素做一次加法,需要多久?第十九页,讲稿共四十七页哦并行程序的时代已经到了?n并行计算:在计算平台上同时执行多个数据运算n提高计算的效能n提高处理器的计算潜力n提高处理器的利用率n提高数据处理的速度n提高可解问题的规模n并行计算平台随处可见n多核处理器:PC机、笔记本nSMP:服务器nCluster:大型计算中心服务器n网络计算环境:CN Grid、China Grid、TeraGrid、Google?n并行程序的需求来自各个领域n我们的生活已经离不开网络:成千上万的并发用户访问搜索引擎、新闻网站、通信聊天网站、娱乐视频网站、
22、多人网络游戏、公共服务网站(图书馆、电子文献数据库)、电子银行、电子政务n工程、科研、生活服务越来越依赖于大规模数据的高效计算:飞机设计、汽车碰撞模拟、武器设计、油气勘探、神州飞船跟踪、基因数据分析、地震运动过程模拟、太阳风磁场重联模拟、三峡大坝选址、气象预报、第二十页,讲稿共四十七页哦并行计算的现状nCPU执行程序时,使用了superscalar/VLIWnCPU早就提供了SIMD支持,从MMX到现在的SSE4。n一些商业软件使用了SIMDn一些函数包使用了SIMDn一些编译器在对循环优化时使用了SIMDn程序员使用了吗?n谁在用桌面机的多核处理器计算能力?n桌面机上的应用以串行程序为主n自
23、己会写并行程序的人不多n一边写程序、一边听MP3时,可以用上,但影响编程、不用多核处理器时计算能力也够了nSMP(Symmetric Multi Processing)服务器n商业软件:开发了并行能力n自己开发的软件:以串行程序为主n主要是依靠操作系统支持多个进程/线程的同时执行第二十一页,讲稿共四十七页哦能同时使用成百上千颗处理器的应用有多少?n集群上的并行计算情况:以CCSE128节点使用情况为例(2006年3月)n3309个计算任务n平均使用1.85个计算节点n节点资源利用率94.7%nIBM RoadRunnern哪个应用能同时使用12960颗CELLnCELL处理器执行标量计算程序将
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 并行 程序设计 讲稿
限制150内