欢迎来到天天文库
浏览记录
ID:32766233
大小:284.11 KB
页数:29页
时间:2019-02-15
《并行程序设计方法和模型研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、并行程序设计方法和模型研究摘要随着并行硬件系统的发展,并行编程愈趋重要。本文主要研究了并行程序的模型、设计方法以及并行编程的一些标准。另外,随着通用GPU(GPGPU)的发展,木文还讨论了利用GPU进行并行计算,其中重点讲述了CUDA(通用并行计算架构)。1.并行系统划分要实现软件并行执行的目标,就必须为多个线程同时执行提供一个硬件平台。对计算机体系结构分类的经典方法就是费林分类法。费林分类法(Flynn'sTaxonomy)是一种高效能计算机的分类方式,1972提出,把计算机分为四种类型:单指令流单数据流(SISD)、单指令流多数据流(SIMD)、多指令流单数据流(M
2、ISD)、多指令流多数据流(MIMD)。STSD(SingleInstructionSingleData):单处理指令单数据,—条指令处理一个数据,所有的冯诺依曼体系结构的“单处理器计算机”都是这类,其硬件不支持任何形式的并行,所有的指令都串行执行。在某个时钟周期内,CPU只能处理一个数据流。SIMD(SingleInstructionMultipleData):单指令多数据,用一个指令流同时处理多个数据流。此类机器在诸如数字信号处理、多媒体信息处理、向量运算处理等应用领域非常有效。时至今日,几乎所有的计算机都以各种形式的指令集形式实现S1MD功能,例如Intel处理器
3、中实现的MMX、SSE、SSE2、SSE3等扩展指令集。这些扩展指令集都能够在单个时钟周期内处理多个数据单元,这些数据单元存储在浮点寄存器屮。MTSD(MuitipleInstructionSingleData):多指令单数据,采用多个指令流同时对一个数据流进行处理。但是在大多数情况下,多个指令流处理多个数据流才是更加有效的处理方式,因此,MISD并行计算机一般只是作为一种理论模型出现。MIMD(MultipleInstructionMultipleData):多指令多数据,每个处理单元有独立指令和数据。能够同时执行多个指令流,这些指令流分别对不同的数据流进行操作。MI
4、MD是目前最流行的并行计算平台,现代流行的并行处理结构都可以划入到这一类。1.1MIMD型计算机体系结构MIMD性计算机体系结构细分的标准是内存结构,即内存是如何组织的。内存结构可以简单的分为两大类:共享内存和消息驱动。共享内存就是指所有处理器共享内存,所有CPU由一个操作系统控制,通过共享内存进行通信;消息驱动就是处理器Z间不共享内存,靠消息驱动来进行通信,就是分布式内存,CPU由不同的操作系统控制,不同的CPU之间通过网络通信。1.1.1共享内存型共享内存型体系结构可以分为对称多处理机SMP,非一致内存访问NUMA。对称多处理机SMP(syminetriemulti
5、processors):所有CPU都共享同一内存。图14对称多处理机内存模式目前Intel和AMD推出的多核CPU应该都划归到对称多处理机这一类。非一致内存访问NUMA(nonuniformmemoryaccess):所有CPU共享所有的内存,但不同的CPU访问不同的内存时速度不一样。图1-2非一致内存访问内存模式CPU访问离自己近的内存是本地直接访问的,访问离自己远的内存是通过总线访问的,因此两者速度差别很大,这也是之所以叫做非一致内存访问的原因。与非一致内存访问NUMA类似的还有一个叫ccNUMA,前缀cc是cache-coherent(一致性高速缓存)的缩写,它其
6、实就是为了解决访问不同内存速度不一样的问题。1丄2消息驱动型消息驱动型体系结构比较典型的就是分布式内存(DM)结构。分布式内存DM(Distributedmemory):每个CPU都有自己的内存,CPU之间通过消息来通信。interconnectnetworkCPUCPUCPUCPUmemorymemorvJmemorymemory图1-3分布式内存结构根据interconnectnetwork的不同,分布式内存可分为三禾中:大规模并行处理系统(MPP)、集群(Cluster)、网格系统(Grid)。三者的差别简单的来说就是:MPP是一台机器,Cluster是一群相同或
7、者类似的机器,Grid是一堆任意的机器。大规模并行处理系统MPP(massivelyparallelprocessors):这样的系统是由许多松耦合的处理单元组成的,每个处理单元内的CPU都有自己私有的资源,如总线,内存,硬盘等。在每个单元内都有操作系统和管理数据库的实例复本。这种结构最大的特点在于不共享资源。集群Cluster:集群应该是大家最常见的,就是一堆相同或者类似的机器通过网络连起来组成一个计算机群,相互之间通过网络进行通信。网格系统Grid:网格系统其实和集群差不多,都是一堆机器通过网络连接起来,但两者还是有不同的地方:1)集
此文档下载收益归作者所有