并行处理技术与SIMD阵列机.ppt
《并行处理技术与SIMD阵列机.ppt》由会员分享,可在线阅读,更多相关《并行处理技术与SIMD阵列机.ppt(50页珍藏版)》请在三一办公上搜索。
1、第7章 并行处理技术与SIMD阵列机,内容提要:,本章首先介绍并行处理技术的基本概念、性能及并行性开发策略,然后讲述SIMD阵列机的基本组成原理、类型、特点、常用算法和几种常见SIMD阵列机的结构。重点是SIMD阵列机的基本组成原理、常用算法和结构;难点是阵列机的基本组成原理与常用算法。,第7章 并行处理技术与SIMD阵列机,7.1 并行处理技术7.2 SIMD阵列机7.3 典型SIMD阵列机举例,7.1 并行处理技术,7.1.1 并行处理的基本概念7.1.2 并行性的开发途径,7.1.1 并行处理的基本概念,1.并行性的基本概念 并行性(Parallelism)也称为同时性或并发性,是指在数
2、值计算、数据处理、信息处理或人工智能求解的过程中存在许多可以同时处理的部分,提交给计算机,同时进行处理。例如存储器猝发存取方式,就是对多个字节(或者字)同时写入或者读出;又如超标量流水线就是让多条指令同时执行。广义地讲,并行性还可以理解为多个程序同时执行。例如,操作系统中的多道程序处理,用户屏幕操作时的后台处理等。这些都可以认为是多个程序在并行执行。,2.并行性的表示方法 并行处理着重开发计算过程中存在的并发事件,使之并行处理。在并行处理时,一次处理事件的大小或者规模不尽相同,常用粒度(Granularity)来表示。所谓粒度,是衡量软件进程中所含计算量的大小,常用程序段中指令数来表示。但在实
3、际应用中,而是假设一个并行处理系统中有P个处理器,同时执行某一任务,用Tw表示所有处理器进行计算时所用时间的总和,Tc表示所有处理器通信时间的总和,若用G表示并行处理中的粒度,则,3.并行性的等级 并行处理中的粒度可分为五个等级,即作业级、任务级、例行程序或子程序级、循环和迭代级及语句和指令级,如图7.1所示。,图7.1 不同层次的并行性,通常,并行处理就是在这些层次的任何一级或多级上开发并行性。层次越高,并行处理的粒度也就越大;相反,层次越低,并行处理的粒度也就越小。一般而言,粗粒度的并行开发主要采用MIMD方式;细粒度的并行性开发主要采用SIMD方式。并行处理技术是从单处理机的并行处理逐步
4、发展而来,包括采用多功能部件、使CPU与I/O重叠操作、流水线方式、多道程序技术以及分时等。,7.1.2 并行性的开发途径,在一个计算机系统中,开发并行性的途径有多种,大体上可归纳为以下三种。1.时间重叠 时间重叠(Time interleaving)是在并行性概念中引入时间因素,使多个处理过程在时间上相互错开,轮流重叠使用同一套硬件设备的各个部分,以加快程序的执行过程。细粒度流水线就是这种并行性的典型代表。2.资源重复 资源重复(Resource replication)是在并行性概念中引入空间因素,即重复设置硬件设备来提供并行操作的途径和系统可靠性。例如后面所要介绍的使用n个完全相同的处理
5、器构成的SIMD阵列机就是具体的例子。另外,人们常说的热备份和多机容错技术也是重复使用某些资源,组成冗余部件,以提高系统的可靠性。,3.资源共享 资源共享(Resource sharing)是用软件的办法让多个任务按一定的时间顺序轮流使用同一套资源,以提高利用率。例如操作系统中的多道程序和分时系统就是利用软件的方法使多个用户或程序共享CPU、主存储器和外部设备等硬件资源。并行性的开发可分为粗粒度和细粒度两种。粗粒度并行性开发主要采用的是软件方法。比如在作业(或程序)级,通过对并行算法的分析来确定可以并行操作的作业(或程序);在任务级,是通过软件对任务进行分解,将其中的子任务,乃至子任务中的例行
6、程序、子程序及可以并行操作的循环找出来,分配给不同的处理器并行处理。开发细粒度的并行性主要涉及到指令级及指令的内部操作,因而与处理器的外特性和内特性紧密相关,因此主要采用硬件的方法来实现。随着RISC技术的发展,超级标量机、超长指令字、超级流水线等技术成为这一方向的发展趋势。,7.2 SIMD阵列机,7.2.1 SIMD阵列机的基本结构7.2.2 阵列机并行算法7.2.3 SIMD阵列机的特点7.2.4 并行存储器无冲突访问,7.2.1 SIMD阵列机的基本结构,SIMD阵列机通常是由一个主机(也称为控制器CU)、n个处理单元 PE、m个存储器模块和一个互连网络 IN组成。系统工作时,由主机C
7、U将指令广播到各个处理单元PE,其中 活跃的处理单元将以同步方式执行 这一指令。从形式上看,是一种单 指令流的方式。各处理单元从各自 的存储器模块中读取所需要的数据,即多数据流的方式。互连网络IN用来 将各个处理单元PE及与存储器模块连 接起来。IN有时也称为对准(Alignment)或排列(Permutation)网络。,图7.2 分布式存储器阵列机,在SIMD阵列机中,根据存储器模块的设置方式其结构可分为分布式存储器阵列机和集中共享存储器阵列机,图7.2 所示是一种分布式存储器结构的阵列机。为了便于标量数据处理,在有的阵列机中还配有标量处理机。,1.分布式存储器阵列机 分布式存储器SIMD
8、阵列机的结构如图7.2所示,包括主机(控制器CU)和多个功能相同的处理单元PE(Processing Element)。其中每一个PE单元都拥有自己的本地存储器LM(Local Memory),各PE单元通过互连网络IN连接,实现数据交换。且配置有专门的标量处理机。(1)主机(控制器CU)有自己的存储器,用以存储系统/用户程序和共用数据。(2)控制器CU的职责包括两个方面:与用户连接,接收用户输入的程序或命令;对指令译码,并判断在哪些处理单元上执行。对于标量指令,由控制器CU或专门的标量处理机完成;对于向量指令,则广播给各PE单元执行。(3)各处理单元同步执行来自控制器CU的操作命令,从本地存
9、储器中获取数据,处理结果再送回到本地存储器中去。但是在实际运算中往往不是所有的处理单元都必须参与,通常是通过屏蔽字来实现,仅允许未屏蔽的活跃PE参与运算。,(4)控制器CU控制互连网络IN,使参加运算的PE单元通过IN互连,进行数据交换。对于两个不能直接连接的PE,可经过中间PE进行数据传送。(5)各处理单元之间的同步由控制部件中的硬件电路来实现,确保所有活跃的PE按同一时钟执行指令。2.集中共享存储器阵列机集中共享存储器SIMD阵列机的结构如图7.3所示,由主机(控制器CU)和多个功能相同的处理单元PE构成。每个PE单元不再拥有本地存储器,而是共享存储器阵列SM(Shared Memory)
10、。各PE单元之间通过互连网络IN连接,且通过互连网络与共享存储器阵列连接。,图7.3 集中共享存储器阵列机,主机(控制器CU)有自己的存储器,用以存储系统程序、用户程序和数据,主要职责也是两个方面,一是与用户连接,接收用户输入的程序或命令;另一方面,对指令译码,并判断在哪些处理单元上执行。对于标量指令,由控制器CU或专门的标量处理机完成;对于向量指令,则广播给各PE单元执行。每个处理单元同步执行来自控制器CU的操作命令,通过互连网络从共享存储器模块中获取数据,处理结果再送回到共享存储器模块中去。当两个处理单元之间需要交换数据时,通过互连网络连接到某一共享存储器模块上,通过共享存储器模块交换。若
11、两个处理单元之间没有共享数据模块时,需经过多次传送来实现。在内部结构中,控制器CU的作用与分布式存储器阵列机类似,这里不再赘述。通过以上分析可以看出,SIMD阵列机结构规整,简单,一般都与某种算法密切相关,因此具有专用性强、数据处理速度快等特点。,7.2.2 阵列机并行算法,阵列机常见的算法有以下4种:1.图像平滑算法 为使屏幕上的图形图像色彩柔和,对相邻像素的数据需要平滑处理。设用I表示输入图像,S表示输出图像,输入输出图像皆由512512个像素组成。对于简单的单色显示,每个点可用8位无符号数表示,可有256个灰度级。若相邻两点的数据相差很大,则图像的黑白反差就会很大。平滑就是让相邻两点的数
12、据尽量接近,简单算法是取相邻像素值的平均值。设I(i,j)表示输入图像上的一点,S(i,j)表示输出图像上的一点。那么,平滑后的S(i,j)应当是I(i,j)及其相邻8个像素值的平均值。分布在I(i,j)周围的8个相邻像素点依次为I(i-1,j-1)、I(i-1,j)、I(i-1,j+1)、I(i,j-1)、I(i,j+1)、I(i+1,j-1)、I(i+1,j)、I(i+1,j+1)。对于输出图像边界上的像素,由于没有边界外的输入值,因此可按0计算。对于一帧图像来说,有512512=262144个像素,若进行一帧平滑,需进行262144次运算,这对于单一CPU所需要的时间就会很长。如果实时性
13、要求很高,单一CPU显然是不能胜任的。因此,可用阵列机来处理。,【例7.1】在具有1024个处理单元PE的阵列机上实现上述算法。解:1024个处理单元PE可以如图7.4(a)所示,排列成3232的阵列,每一个PE存储一个1616像素的子像块。各处理单元同时进行平滑运算时,一个PE仅进行1616=256次运算。若不考虑相互之间的通信时间,整体速度可提高1024倍。在图7.4(a)中,PE0存储行015列015的子像块,PE1存储行015列1631的子像块,依次类推。对于每一个子像块来说,存在边界数据,因此每一个处理单元需要与相邻PE通信,如图7.4(b)所示,通信次数为164+4=68。假设每一
14、次通信所用的时间与一次平滑运算的时间相同,那么采用阵列机以后,速度提高为262144/(256+68)=809倍。,图7.4 平滑算法示意图,2.向量递归折叠加法 在向量求加和时若使用单一CPU串行运算,对于N个向量元素需要进行N-1次加法运算。为提高速度,可用多个处理单元并行递归折叠计算,下面举例说明。【例7.2】设有8个处理单元,对8个向量元素按照递归折叠算法求和。解:首先把8个向量元素Ai(i=07)分配给8个处理单元PE0PE7,并如图7.5所示由4个处理单元并行运算,即在PE0上进行A0+A1运算,在PE2上进行A2+A3运算,在PE4上进行A4+A5运算,在PE6上进行A6+A7运
15、算;然后再在PE0上进行A0+A1+A2+A3运算,在PE4上进行A4+A5+A6+A7;最后在PE0上求两个部分和之和。,图7.5 递归折叠算法,在整个运算中仅需3次传送和3次求和。一般而言,对于N个向量元素在N个处理单元上按照递归折叠算法求和,仅需log2N次传送和加法运算。显然,速度提高。在运算过程的第一步中,PE1、PE3、PE5、PE7不参加运算,以此类推在第二步和第三步中不参加运算的处理单元,须由控制器CU中的屏蔽字予以屏蔽。3.矩阵加法运算在阵列机上进行nn阶矩阵的加法运算是一种最简单的并行运算。设A和B是nn阶矩阵,其和C=A+B也是nn阶矩阵,即:Cij=Aij+Bij,由公
16、式可以看出,Cij仅与Aij和Bij有关,因此可把矩阵元素Aij和Bij分别存入同一处理单元的局部存储器中,结果Cij也存入相应的存储器中,如图7.6所示。图中设有64个处理单元,表示地址,可对88的矩阵进行直接的并行加法运算,速度快。,图7.6 矩阵加法存储器分配示意图,若设一次求和用的时间为tm,当处理单元的个数Pn2时,则nn个元素可同时进行加法运算,因此所需要的总运算时间为TP=tm。如果Pn2,则nn个元素不能一次进行运算。在这种情况下,可将n2个元素均匀地分配到各处理器的局部存储器中,所有处理器内部串行对分配到的元素进行运算,相互之间并行运算。这样,所需要的总运算时间为TP=(n2
17、/P)tm。,4.矩阵乘法运算 在阵列机上进行nn阶矩阵的乘法运算要比加法运算复杂得多。设A和B是nn阶矩阵,传统算法C=AB,其结果元素可表示为:,在这种计算过程中,基本运算为n3次乘法和加法运算。若用t乘表示进行一次乘法所用的时间,t加表示进行一次加法所用的时间,则总的执行时间为T0=n3(t乘+t加)。,若在阵列机中并行运算,所用时间可大为减少。设阵列机中处理单元的个数P是某一整数m的平方,则P个处理单元可互连成mm的二维双向链路环网结构。对于nn阶矩阵,如果Pn2,可使用其中n2个处理单元进行运算。这样矩阵A、B、C中的元素Aij、Bij、Cij(0i,jn-1)映象到P(=n2)个处
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 并行 处理 技术 SIMD 阵列
链接地址:https://www.31ppt.com/p-6571338.html