Visual Studio 2010并行计算概述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Visual Studio 2010并行计算概述
并行计算(Parallel Computing)是指同时使用多台计算机协同合作解决计算问题的过程,其主要目的是快速解决大型且复杂的计算问题。
图1:计算原理
并行计算是相对于串行计算——即在单个计算机(具有单个中央处理单元)上执行的操作,所提出的。具体的说,并行计算是在多台(并行)计算机上将一个应用任务分解成多个子任务,分配给不同的处理器,各个处理器之间相互协同,同时执行子任务的过程。并行计算可分为时间上的并行和空间上的并行。时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。为执行并行计算,计算资源应包括一台配有多处理(或并行处理)机的计算机和一个与网络相连的计算机专有编号。
图2:(a)SIMD类型 (b)MIMD类型
目前,对于并行计算的研究主要集中在空间上的并行问题上。空间上的并行导致了两类并行机的产生,即单指令流多数据流(SIMD)和多指令流多数据流(MIMD)。类似地,我们常用的串行机有时也被称为单指令流单数据流(SISD)。在1972年诞生的第一台并行计算机ILLIAC IV就属于SIMD类型机器。而自上个世纪八十年代以来,都是以MIMD并行计算机的研制为主。常见的MIMD类的机器可分:并行向量处理机(PVP)、对称多处理机(SMP)、大规模并行处理机(MPP)、工作站机群(COW)、分布式共享存储处理机(DSM)等五
类。并行计算机主要有以下四种访存模型:
l 均匀访存模型(UMA)
非均匀访存模型(NUMA)l
全高速缓存访存模型(COMA)l
l 一致性高速缓存非均匀存储访问模型(CC-NUMA)和非远程存储访问模型(NORMA)。
常见的基本并行算法有:划分法(partitioning)、分治法(divide-and-conquer)、流水线方法(pipelining)、随机法(randomization)、平衡树法(balanced-tree)、倍增发(doubling)、迭代法(iteration)等。
在当前并行计算机上,比较流行的并行编成环境可以分为三类:消息传递、共享存储和数据并行。消息传递的典型代表是MPI,它是基于大粒度的进程级并行,具有最好的可移植性,几乎被当前流行的各类并行计算机所支持,且具有很好的可扩展性;共享存储的典型代表是OpenMP,它主要应用于SMP、DSM类的并行计算机上,可扩展性不如消息传递并行编程,不过这种方法并行编程难度较小;数据并行的典型代表是HPF,主要被SMP、DSM和 MPP类型的并行计算机支持,它的数据存储模式是共享存储,对数据分配方式属于半隐式,可扩展性介于前两种之间。