欢迎来到天天文库
浏览记录
ID:43860733
大小:84.50 KB
页数:7页
时间:2019-10-16
《高性能并行计算初步(整理)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第一部分:并轻耀序谡會基础1.什么是并行计算机:并行计算机即能在同一时间内执行多条指令或处理多个数据的计算机,并行计算机是并行计算的物理载体。2.并行计算机的基本划分:根据一个并行计算机能够同时执行的指令与处理数据的多少可以把并行计算机分为SIMD(Single-InstructionMultiple-Data)单指令多数据并行计算机和MIMD(Multiple-InstructionMultiple-Data)多指令多数据并行计算机。SIMD计算机同时用相同的指令对不同的数据进行操作;SIMD计算机同时用相同的指令对不同的数据进行操作。按
2、同时执行的程序和数据的不同又提出了SPMD(Single-ProgramMultuple-Data)单程序多数据并行计算机和MPMD(Multiple-ProgramMultiple-Data)多程序多数据并行计算机的概念,这种划分方式依据的执行单位不是指令而是程序。显然其划分粒度要大得多。一般地SPMD并行计算机是由多个地位相同的计算机或处理器组成的,而MPMD并行计算机内计算机或处理器的地位是不同的,根据分工的不同它们擅长完成的工作也不同,因此可以根据需要将不同的程序任务放到MPMD并行计算机上执行。3.并行计算机的存储方式:从物理划分
3、上:共享内存和分布式内存是两种基本的并行计算机存储方式,除此之外分布式共享内存也是一种越来越重要的并行计算机存储方式。对于共亨内存的并行计算机,各个处理单元通过对共享内存的访问来交换信息协调各处理器对并行任务的处理。对于分布式内存的并行计算机,各个处理单元都拥有自己独立的局部存储器,由于不存在公共可用的存储单元,因此各个处理器之间通过消息传递来交换信息协调和控制各个处理器的执行。这是木书介绍的消息传递并行编程模型所面对的并行计算机的存储方式。不难看出通信对分布式内存并行计算机的性能有重要的影响,复杂的消息传递语句的编写成为在这种并行计算机上
4、进行并行程序设计的难点所在,但是对于这种类型的并行计算机由于它有很好的扩展性和很高的性能,因此它的应用非常广泛。对于分布式共享内存的并行计算机结合了共享内存的并行计算和分布式内存的并行计算机的特点,通过提高一个局部结点内的计算能力,使它成为所谓的超结点,不仅提高了整个系统的计算能力,而且可以提高系统的模块性和扩展性,有利于快速构造超大型的计算系统。3.物理问题在并行机上的求解(110W?)物理问题并行求解的最终目的是将该问题映射到并行机上,忽略并行机的非木质的细节特征可以得到该并行机的并行计算模型,在这一模型上可以设计各种适合该模型的并行算
5、法,这些算法精确描述了该并行模型能够实现的功能,而这些算法是通过用特定的并行语言设计并行程序后得以实现的。并行程序设计,需要将问题的并行求解算法转化为特定的、适合并行计算模型的并行算法。首先是问题的并行1求解算法必须能够将冋题内准的并行特征充分体现出来,否则并行求解算法将无法利用这些并行特征,从而使问题的高效并行求解成为不可能;其次是并行求解模型要和并行计算模型尽量吻合,这样就为问题向并行机上的高效解决提供了前提。1.最重要的两种并行编程模型:(数据并行和消息传递)数据并行编程模型的编程级别比较高,编程相对简单,但它仅适用于数据并行问题。数
6、据并行即将相同的操作同时作用于不同的数据,因此适合在SIMD及SPMD并行计算机上运行「数据迸彳亍编程模,型是一种较高层次上的模型,它提供给编程者一个全局的地址空间,一般这种形式的语言本身就提供并行执行的语义,因此对于编程者来说只需要简单地指明执行什么样的并行操作和并行操作的对彖,就实现了数据并行的编程。数据并行发展到现在高效的编译实现成为它面临的一个主要问题。消息传递编程模型的编程级别相对较低,但消息传递编程模型可以有更广泛的应用范围。消息传递即各个并行执行的部分之间通过传递消息来交换信息协调步伐控制执行。为编程者提供了更灵活的控制手段和
7、表达并行的方法,一些用数据并行方法很难表达的并行算法都可以用消息传递模型来实现,灵活性和控制手段的多样化是消息传递并行程序能提供高的执行效率的重要原因。1.并行语言的产生主要有三种方式:(1)设计全新的并行语言;(2)扩展原来的串行语言的语法成分使它支持并行特征;即将对串行语言的并行扩充作为原来串行语言的注释,相对于设计全新的并行语言显然难度有所降低,但需要重新开发编译器,使它能够支持扩充的并行部分。(3)不改变串行语言仅为串行语言提供可调用的并行库;是一种对原来的串行程序设计改动最小的并行化方法,这样原来的串行编译器也能够使用,不需要任何
8、修改,编程者只需要在原来的吊行程序中加入对并行库的调用就可以实现并行程序设计,本书所介绍的MPI并行程序设计就属于这种方式。2.并行算法的分类:根据运算的基本对象的不同,可以将并
此文档下载收益归作者所有