文档库 最新最全的文档下载
当前位置:文档库 › 第17章 并行处理

第17章 并行处理

第17章 并行处理
第17章 并行处理

第17章 并行处理

FLUENT有串行求解器和并行求解器,串行求解器不能胜任一些大型工程项目的计算,为解决此问题,FLUENT提供了并行求解器。本章将在以下4节中介绍并行处理的特性。

17.1:并行处理简介

17.2:启动求解器的并行版

17.3:使用工作站的并行网络

17.4:检查并改进并行计算性能

17.1 并行处理简介

FLUENT串行求解器在一个CPU上用一个进程处理计算任务,并行求解器则是在多个CPU 上用多个进程处理计算任务。这多个进程既可以在同一台计算机的多个CPU上运行,也可以在用网络连接的不同计算机上运行。图17-1和图17-2分别是FLUENT的串行求解器和并行求解器各模块之间的逻辑关系。

图17-1 串行求解器各模块之间的逻辑关系

FLUENT中的并行处理过程包括FLUENT、一个主机进程和一套节点进程之间的交互作用。FLUENT通过一个叫CORTEX的模块与主机进程和各个节点进程进行信息传递。CORTEX主要用来管理FLUENT的用户界面和基本的图形功能。

FLUENT并行求解器把网格和数据分成多个分区,然后再把各个分区分配给计算节点进行计算。分区的数量应该等于可用计算节点数量的整数倍。例如,如果将网格和数据划分为8个分区,则可以在计算中使用1、2、4或者8个计算结点。节点进程可以在大型并行计算机上运行,也可在一个多CPU的工作站上运行,或者在由多个计算机组成的网络上运行。

大体上说,计算节点数目越多,并行计算的时间就越短。然而节点数量与计算效率之间并不是存在严格的正比关系。随着节点间数据通信量的增加,并行效率将会降低,所以在选择使用并行计算之前,应该思考是否确实需要使用并行计算方式。

FLUENT的主机进程中没有任何网格数据,而仅仅负责解释来自于CORTEX的命令。主机进程把接收到的命令通过指定计算节点上的数据通讯模块传递给其他节点,这个被指定的节点称为“计算0节点”。其它计算节点在接收到主机进程传递过来的命令后,在各自的数据集合上同时执行相同的程序。计算节点与主机进程之间的通讯工作仅当计算0节点和所有计算节点保

持同步时才可以进行。

事实上每个计算节点和其它每一个计算节点是连接在一起的,但是节点之间的数据传输、同步和执行全局任务则需要通过其数据通讯模块实现,并通过数据通讯模块实现逻辑意义上的联通。FLUENT的数据通讯模块是一个信息传送库,而信息的传送机制则符合MPI(Message Passing Interface,信息传送界面)标准,如图17-2所示。

图17-2 并行求解器各模块之间的逻辑关系

FLUENT的并行处理进程和串行处理进程一样,均使用唯一的一个整数标志符加以识别。主机从计算0节点收集信息,然后执行关于所有数据的任务,包括打印、信息显示和文件写入等等,其方法与使用串行求解器时一样。

FLUENT并行求解器的使用流程如下:

(1)启动并行求解器,并在需要的时候生成附加的计算节点。

(2)读取算例文件,并让FLUENT在加载文件时对网格进行自动分区。因为分区过程在某些情况下取决于计算模型的设定,因此网格分区最好在模型设置完毕后再去执行。除了自动分区方法,还有其它方法可以用来划分网格分区,其中包括在串行或并行求解器中的手动划分方式。

(3)仔细检查网格分区,如果分区存在问题,可以重新进行分区操作。

(4)开始进行计算。

17.2 启动求解器的并行版本

在采用多处理器设计的并行机和工作站集群上启动FLUENT并行版本的方法是不同的。FLUENT并行求解器运行的环境既可以是UNIX操作系统,也可以是LINUX操作系统,还可以是Windows系统。在这里只详细介绍它在Windows操作系统下的情况。

17.2.1在多处理器Windows 操作系统的机器上运行

在Windows 系统中,可以从MS-DOS 命令提示窗口启动FLUENT 的专用并行版本,启动命令为:

fluent version –tx

在实际使用过程中version 用FLUENT 的版本号(2d 、2ddp 、3d 或3ddp )代替,x 为计算中使用的处理器数量。例如,命令fluent 3d –t3表示在3个处理器上运行3D 版本的FLUENT 。 17.2.2在一个Windows 集群上运行

在由Windows 机组成的网络上运行并行FLUENT 可以使用两种通讯方式,一种是基于RSHD 的并行版,另一种是基于MPI 的并行版。下面分别介绍其启动方式:

1、起动基于RSHD 的FLUENT 并行版本。

如果网络中安装用于网络通信的RSHD 软件,则在MS-DOS 命令提示窗口中键入命令: fluent version –tnprocs –pnet [-cnf=hostfile ] –path sharename

其中:

(1)version 由FLUENT 版本号(2d 、2ddp 、3d 或3ddp )来代替。

(2)–pathsharename 为FLUENT 的安装目录Fluent.Inc 在网络上的共享名称。例如,如果在Computer1上安装了FLUENT ,那么就用\\Computer1\Fluent.Inc 替换sharename 。

(3)–cnf=hostfile (可选的)指定主机文件,主机文件中是运行并行计算的计算机名单。如果主机文件不在当前目录中,则需要提供文件的完整路径。在使用-cnf 选项时,不要使用中括号。

可以应用Notpad 创建主机文件。对文件名唯一的限制是其中不能有空格符,比如可以使用host.txt 做主机文件名,但不能用my host.txt 做主机文件名。主机文件中可以包含如下的条目: computer1

computer2

其中排在第一位的计算机是本地计算机名,最后一个条目的后面必须是一个空行。

如果网络中的有一台多处理器计算机,则主机文件中可以多次列出它。例如,如果computer1有两个CPU ,那么为了利用这两个CPU ,hosts.txt 文件应当列出computer1两次: computer1

computer1

computer2

如果不选-cnf 项,FLUENT 将在键入启动命令的本地计算机上起动nprocs 程序。然后,再用FLUENT 中的Network Configuration (网络设置)面板在集群上交互式地将其他计算机加入,具体操作见17.3节。

(4)–tnprocs 用于指定计算进程的数量。如果使用了-cnf 选项,那么hostfile 中的计算机列表就用于指定哪些计算机将参与并行计算。例如,在主机文件里列出了10台计算机,如果仅想在5个计算机上进行计算,则设置nprocs 为5,即-t5,FLUENT 将用主机文件中的前5台机器进行计算。

在启动后可以用Network Configuration (网络设置)面板删除进程或者添加进程,详细内容请看第17.3节。

下面是一个例子:主机文件hosts.txt 里列出了m 台(3≥m )计算机,在前3台上起动一个基于RSHD 的3D 并行工作,其完整命令如下:

fluent 3d –t3 –pnet –cnf=hosts.txt –path\\computer1\fluent.inc

2、起动基于MPI 的FLUENT 并行版本。

如果用于网络通讯的软件为MPI 软件,则在MS-DOS 命令窗口中应该键入如下命令: fluent version –tnprocs –p comm -cnf=hostfile –path sharename

其中,comm 可以是nmpi 也可以是vmpi 。这里nmpi 意为network MPI ,即网络上免费发行的MPI 软件;vmpi 意为vendor-supplied MPI ,即开发商提供的专用MPI 软件。其余选项的含义与前面基于RSHD 的启动里所讲的相同,所不同的是:

(1)必须使用主机文件。当应用MPI 软件时,用Network Configuration (网络设置)面板既不可以添加也不可以关掉集群上的计算节点。

(2)主机文件中列出的第一台计算机必须是本地计算机的名字。

作为一个例子,主机文件hosts.txt 里列出了m 台(3≥m )计算机,在前3台上起动一个基于MPI 的3D 并行工作的完整命令如下:

fluent 3d –t3 –pvmpi –cnf=hosts.txt –path\\computer1\fluent.inc

17.3 使用并行的工作站网络

在工作站网络上通过添加和删除计算节点可以创建一台虚拟的并行机,即可以将网络看作一台拥有多个CPU 的并行计算机,然后在这台虚拟机上进行并行计算。不过多个CPU 并非进行并行计算的必要条件,事实上即使在一台只有一个CPU 的工作站上也可以运行多个计算节点进程,以并行方式进行计算。

17.3.1 设置网络

添加和删除计算节点的工作可以在Network Configuration (网络设置)面板中进行,启动这个面板的菜单操作为:

Parallel -> Network -> Configure...

启动后面板如图17-3所示。

图17-3 Network Configuration 面板

1、网络的结构

计算节点的排序从0开始。除了计算节点进程,还存在一个主机进程。这个主机进程在FLUENT启动时自动启动,在FLUENT退出时则被自动关掉。除主机进程外,其他节点进程都可以在计算进行时被关闭,其中第0个节点上的节点进程仅在其他节点进程被全部关闭后,才能被关闭。主机进程不能在计算过程中被关闭。主机进程在本地计算机上创建计算0节点,计算0节点再依次创建其它计算节点。

2、创建计算节点的步骤

创建计算节点的基本步骤如下:

(1)在Available Hosts(可用主机)列表中选择要创建计算节点的计算机。如果想要的计算机不在列表中,可以使用Host Entry(主机入口)下面的空格手工添加一台主机,或者从主机数据库(Datebase…)里将想要的主机拷贝进来。

(2)在Spawn Count(创建计数器)空框里设置每一台主机上需要创建的节点进程的数量。

(3)点击Spawn(繁衍)按钮完成新节的创建过程,同时节点名称被添加到Spawned Compute Nodes(创建计算节点)列表中。

下面将介绍与网络结构相关的其余功能。

3、手工添加主机

要在Network Configuration(网络设置)面板中手工添加一个主机到Available Hosts(可用主机)列表,需要在Host Entry(主机入口)下面的Hostname(主机名称)里输入远程机器的网络名称,然后在Username(用户名)里输入用户名称。如果所有帐号的用户名都相同,则不需要输入用户名。最后点击Add(添加)按钮,则主机将被添加到Available Hosts(可用主机)列表中。

4、删除主机

要在Network Configuration(网络设置)面板中的Available Hosts(可用主机)列表里删除一个主机,那么选取这个主机后点击Delete(删除)按钮即可完成。可以看到主机的名字将从Available Hosts(可用主机)列表中消失,不过主机数据库不会因为这项操作发生任何变化。

5、关闭计算节点

如果需要关闭一个计算节点,可以在Spawned Compute Nodes(已创建节点)列表中选择它,然后点击kill(关闭)按钮就可以完成关闭节点的操作。需要再次提醒的是,计算0节点仅当是最后剩余的一个计算节点程序时才可以被关闭。

6、保存主机文件

如果已经完成Available Hosts(可用主机)的创建工作,可以将含有主机信息的主机文件进行保存,以便再次使用同一组主机进行计算时可以不必再重新进行创建工作。点击Save(保存)按扭,然后在Select File(选择文件)对话框里输入相应的文件名并保存它就可以了。在将来需要用到这个文件时,可以把这个文件的内容载入主机数据库,然后再将这些主机复制到Network Configuration(网络设置)面板,就可以快速生成Available Hosts(可用主机)列表了。

7、节点创建过程中遇到的一般问题

创建过程中的节点进程将试图与一个新的计算节点建立联系,但是如果50秒后没有收到这个新节点的响应,那么进程将认为创建过程失败。例如,如果远程访问的计算机不能找到可执行的FLUENT,那么创建进程的操作既告失败。如果想用人工方法验证准备执行节点创建的计算机能否启动一个新计算节点,可以键入下列命令:

rsh [-1 username] hostname fluent –t0 –v

hostname应当用计算机的网络名称代替,usename应当被指定为hostname的远端机器的注册名所取代。

!如果你所有的记述都有相同的注册名,那么你不需要规定用户名。(中括号里面的-1 username意味着不是总需要;如果你没有输入一个注册名称,那么就不存在中括号及里面的内容。)注意:在一些系统上,远端设定命令的解释器位置的命令是remsh而不是rsh。

繁衍验证可能失败的几个原因为:

注册错误。机器繁衍一个新计算节点必须能够rsh到这台将拥有新程序的机器,否则繁衍将会失败。使其具备这种功能的方法有好几种,请访问你的系统管理器寻求帮助。

fluent:找不到命令。rsh到远端机器取得了成功,但在这台机器上找不到FLUENT设定命令的解释器位置的script路径。如果你使用的是csh,那么FLUENT设定命令的解释器位置的script路径应当添加路径变量到你的.cshrc文件中。如果这也失败了,你可以在创建计算节点之前,直接使用parallel/network/path文本命令设置路径到Fluent.Inc安装地址里。

17.3.2 主机数据库

当你要创建一个工作站的并行网络时,在你当地网络(一个“主机文件”)中的部分机器基础上来进行这个工作是一个比较便捷的方法。你可以卸载一个含有这些机器名字的文件到主机数据库,然后利用Hosts Database面板,选择用于创建一个工作站簇上的并行结构(或网络)的主机(图17.3.2)。

Parallel

Net

work

Database

图17.3.2:Hosts Database面板

你也可以在Network Configuration面板里点击Database…按扭打开这个面板。

如果主机文件fluent.hosts或.fluent.hosts在你的主目录里,它的内容是在启动的时候自动添加到主机数据库中的。另一方面,主机数据库将是空的,直到你读进一个主机文件为止。

读主机文件

如果你有一个含有你当地网络上的一列机器的主机文件,你可以通过点击Load…按扭卸载这个文件到Hosts Database面板里,在Select File对话框里规定这个文件的名字。一旦读了这个文件的内容,这个主机名字将会出现在Hosts列中。(FLUENT将自动地为每一台识别出的机器添加IP(网络协议)地址。如果一台机器目前不在当地网络中,那么它的标示将是unknown。

复制主机到Network Configuration面板

如果你要在Hosts Database面板中复制一个或多个主机到Network Configuration面板中的Available Hosts列,那么在Hosts列中选择你想选的名字,然后点击Copy按扭。所选主机将被添加到Available Hosts列,在这些主机上你可以繁衍节点。

检查网络的连通性

对于任何计算节点,你都可以打印网络连通性的信息,其中包括主机名字、体系机构、程序标识符和所选计算节点的标识符以及所有联网的机器。所选计算节点的标识符之记号是星号。

FLUENT主机程序的标识符一直是host。计算节点从node-0开始按数字的大小顺序依

次标识。所有的计算节点完全连接了起来。另外,计算0节点连接主机程序。

为获得一个计算节点的连通性信息,你可以使用Parallel Connectivity 面板(图17.3.3)。

图17.3.3:Parallel Connectivity 面板

为获得Compute Node 下面框里的连通性信息,那么显示计算节点标识符,然后点击Print 按扭。计算0节点作为样本输出如下:

标识符 Com m. 主机名

O.S PID Mac h ID H W ID 名字

host net balin Linu x-32 17272 0 7 Fluent

Host n3 smpi balin Linu x-32 17307 1 10 Fluent

Node

n2 smpi filio Linu x-32 17306 0 -1 Fluent

Node

n1 smpi bofur Linu x-32 17305 0 1 Fluent

Node

on smpi balin Linu x-32 17273 2 11 Fluent

Node

O.S 表示体系机构,Comm.表示交流器,PID 表示程序标识数字,Mach ID 表示计算节点的标识符,HW ID 表示所用交流器的特定标识符。

你可以在Network Configuration 面板里检查一个计算节点的连通性,具体过程是:在Spawned Compute Nodes 列选择这个计算节点,然后点击Connectivity 按钮。如果在Spawned Compute Nodes 列中你没有做任何选择就点击了Connectivity 按钮,那么Parallel Connectivity 面板将会被打开,你可以如上面所叙述的方法在此规定节点。如果你在Spawned Compute Nodes 列中选择了不止一个计算节点,那么点击Connectivity 按钮将会打印出每一个所选节点的连通性信息。

16.4 检查并改进并行计算性能

为了确定并行求解器工作运行的好坏,你可以使用性能仪表来测量计算和通信的时间,总并行效率。为了优化并行求解器,你可以控制节点间的通信总量和提高FLUENT 的自动负载平衡特性。

Parallel Show Connectivity…

17.4.1 检查并行计算性能

性能仪表不仅允许你报告信息传送的统计数据,还允许你报告一个计算过程中的严密同步时间。自从性能仪表一直工作起,你可以在计算完毕后通过输出这些统计资料而访问他们。若要浏览当前的统计信息,则使用Parallel/Timer/Usage 菜单项。

性能统计数据将在文本窗口里输出(控制台)。 为了刷新性能仪表以便你可以从以后的报告中清除以前的统计数据,则使用Parallel/Timer/Reset 菜单项。

17.4.2 优化并行求解器

增加报告的时间间隔

在FLUENT 中,你可以对残差的输出/绘图或其它解答的监控增加报告时间间隔,从而降低通信和提高并行计算的性能。你可以在Iterate 面板中修改Reporting Interval 的值。

!注意:直到每一报告间隔的最后你才能够打断迭代。

负载平衡

在FLUENT 中可以使用动力负载平衡性能。应用并行处理的主要原因是为减少数值模拟的周转时间,理想上是通过与计算所用机器的组合速度成比例的一个因数来实现。例如,如果你应用4个CPU 去求解问题,那么你希望通过4的一个因数来减少计算的周转时间。当然,这是一个理想状态,要假设CPU 之间所需要的交流通信很少,所有的CPU 的速度有相同的速度,所有的CPU 致力于你的工作中。实际上,情况并非如此。例如,若你在一个非同类机器集合的工作站上正在进行并行求解,CPU 的速度可以变化,其它工作可能使用一个或多个CPU 就可完成,来自并行求解器内部或产生于外部资源的网络传输可能延迟CPU 之间必要的通信。 如果你使FLUENT 产生动力负载平衡,那么通过计算和联网的机器之载荷将被周期性的监控。如果负载权衡器认为通过计算节点间的单元重新分布可以改进性能,那么它将自动如此做。有一个与负载平衡本身相联系的时间损失,所以它不能够缺省。如果你将使用一台专用同类机器,或正在使用一台异类机器,但已考虑到了在规定一个负载分布的划分期间的CPU 速度的不同,那么你可以不需要使用负载平衡。

!注意:当应用shell 传导模型时,你将不能打开负载平衡。

若要赋予和控制FLUENT 的自动负载平衡特性,使用Load Balance 面板(图16.4.1)。负载平衡将自动探测和分析并行性能,并在现存的计算节点之间重新分布单元从而优化它。

Parallel Timer Usage… Parallel

Timer Reset… Solve Iterate… Parallel Load Balance…

图17.5.1;Load Balance面板

使用负载平衡的步骤如下:

1.打开Load Balancing项。

2.在Partition Method下拉菜单中选择对分方法来建立新的网格分割。作为自动

负载平衡过程的一部分,应用特定方法把网格重新划分成几个小的分割。然后所得到的分割将被分配到计算节点之中,从而获得一个更大的平衡负载。

3.规定想要的Balance Interval。当规定了一个0值时,FLUENT将在内部决定

使用的最佳值,初始使用的是一个25步迭代的间隔。你也可以不考虑这种行为而规定一个非零值。然后,FLUENT将在没N步迭代后试着执行负载平衡,这里N是所规定的Balance Interval。你在选择一个迭代时应当非常小心,因为这个迭代要大到超过执行负载平衡操作所花费的时间。

注意:你可在任何时候打断这个计算,关闭(或打开)负载平衡特性,然后继续此计算。

!如果由于适应而在你的计算中出现问题,你可以关掉自动负载平衡,这种情况发生在并行计算中执行网格适应的任何时间。为了指示求解器跳过负载平衡步,发布如下命令:(disable-load-balance-after-adaption)

应用如下命令回到默认的行为:

(enable-load-balance-after-adaption)

基于Spring Batch的大数据量并行处理

基于Spring Batch的?大数据量并?行处理 瑞友科技IT应?用研究院池建强 2012-12-08

About ME ?池建强,70后程序员,98年毕业,先后就职于洪恩软件、RocketSofeware和?用友集团-瑞友科技,现任瑞友科技IT应?用研究院副院?长 ?先后从事互联??网和企业应?用开发,??目前致?力于基础应?用平台的研究?热爱技术和编码?工作,坚持年轻时的理想,倒霉的乐观者?技术领域:Java、Python、Ruby、C/Objective-C、DDD、OSGi、App Platform ?Blog: https://www.wendangku.net/doc/c58074773.html,/ | Weibo: @池建强

?大数据量胜于优秀算法 ?如果数据?足够多,可能产?生出意想之外的应?用 ??无论算法好坏,更多的数据总能带了来更好的效果

处理海量数据的利器Concurrency & Parallelism

Erlang/Scala :Actor&Message Grand Central Dispatch :Block&Queue Go :goroutine GridGain :Compute Grid Hadoop :MapReduce Java7:ForkJoinPool Java6:ExecutorService Spring Batch

SpringSource与Accenture合作开发了Spring Batch Accenture在批处理架构上有着丰富的?工业级别的经验,SpringSource则有着深刻的技术认知和Spring框架编程模型 Accenture贡献了之前专?用的批处理体系框架,这些框架历经数?十年研发和使?用,为Spring Batch提供了?大量的参考经验 Spring Batch借鉴了JCL(Job Control Language)和COBOL的语?言特性

并行处理技术习题2012

1、针对PVP,SMP,MPP,DSM,COW五种并行结构,指出每一种结构的2 个独特特性(独特特性指在任何其它模型中没有)。 2、写出三个可扩展定律的加速比:固定工作负载加速比、固定时间加速比和受 限于存储器加速比。 Ch2: 1、比较超标量处理器和超流水线处理器。 2、就指令系统规模、指令格式、寻址方式以及每条指令周期数5个方面,比较RISC和CISC 处理器的指令系统。 Ch3: 1、比较WI,WU,WT,WB。 2、从存储器结构的角度列出MIMD的详细分类。

1、对于n维带环立方体(CCC,Cube-Connected Cycles)、具有N个结点的完全二叉树(Binary Tree)网络和具有N个结点的二维网格(2D Mesh),填写下列空格: 2、请画出用2×2开关(switch)和均匀洗牌拓扑连接(Perfect Shuffle)的8×8 Omega (?) 网络。

Ch5&Ch6: 1、专用机群和非专用机群比较。 2、如图为一个共享磁盘的双结点机群,假定只有结点会发生故障,且每个结点的可用性为99%。系统中其他部分(如:互连结构和共享的RAID磁盘)为100%可用。另外假定当一个结点发生故障时,将它的工作负载转移到其他结点上所用的时间为0。 a.如果忽略预期关机时间,机群的可用性为多少? b.如果机群每月要用1小时维护,其可用性是多少? Ch7: 1、比较SIMD,MIMD,SPMD,MPMD四种执行方式。 2、在以下的代码中,进程P向进程Q发送包含在变量M中的一个消息,Q将此消息接收到它的变量S中: 进程P 进程Q M = 10; S = -100; Send M to Q; Receive S from P; M = 20; X = S + 1; Output(X); 试分别在同步、锁定和非锁定方式下,分析可能的结果(X的可能值)。

基于Hadoop2.0并行数据处理应用

电子科技大学成都学院云计算系 实践专周设计报告 课程名称:基于Hadoop2.0并行数据处理应用 指导教师组:邹倩颖王小芳 组长学号姓名: 1341310131 屈太源 组员学号姓名: 1341310120 冯小丹 组员学号姓名: 1341310726 张瑜 云计算科学与技术系制 2015年12月

目录 第1章引言 (1) 1.1 问题分析 (1) 1.2 设计目标 (1) 1.2.1 基本功能 (1) 1.2.2 扩展功能 (2) 1.3 设计思路 (2) 1.4 功能描述 (2) 1.5 设计过程 (3) 第2章相关技术简介 (4) 2.1 Hadoop平台介绍 (4) 2.2 MapReduce并行程序设计 (4) 2.2.1 Map函数 (4) 2.2.2 Reduce函数 (5) 2.2.3 MapReduce计算模型的优化 (5) 2.3 HDFS简介 (6) 2.3.1 HDFS节点 (6) 2.3.2 关于NameNode (6) 2.3.3 关于DataNode及体系结构图 (7) 第3章环境搭建过程详述 (8) 3.1 搭建hadoop伪分布的环境 (8) 3.2 设置ssh免密码登本地 (8) 3.2.1 创建一个wifi (8) 3.2.2 配置jdk (9) 3.2.3 配置hadoop (9) 3.2.4 测试hadoop是否搭建成功 (12) 第4章MapReduce并行设计实现 (13) 4.1 第一案例要求 (13) 4.2 核心代码1 (13) 4.3 第二案例要求 (16)

4.4 核心代码2 (16) 第5章测试和总结 (20) 5.1 集群测试和调试 (20) 5.2 集群系统存在的问题及解决方案 (20) 5.3 收获及心得体会 (21) 参考文献 (22) 致谢 (23)

TMS320C55xDSP并行处理技术分析与应用(精)

TMS320C55x DSP并行处理技术分析与 应用 TMS320C55x DSP并行处理技术分析与应用 类别:单片机/DSP TMS320C55x DSP是一种高性能的数字信号处理器,其强大的并行处理能力能够进一步提高其运算能力。本文介绍了C55xDSP的内核结构以及用户自定义并行指令时必须遵守如下3条并行处理基本规则,并介绍了6种典型的并行处理应用。利用本文介绍的方法使用并行处理能力将有效提高程序执行效率,同时降低系统功耗。 德州仪器公司(TI)的TMS320C55x(简称C55x)DSP内核是在 TMS320C54x(简称C54x)基础上开发出来的,并可以兼容C54x的源代码。C55x 的内核电压降到了1V,功耗降到0.05mW/MIPS,是C54x的1/6。C55x的运行时钟可以达到200MHz,是C54x的两倍,再加上C55x在C54x结构上作了相当大的扩展,程序执行时可以大量采用并行处理,这样使得C55x的实际运算能力可以达到300MIPS以上。 C55x DSP已越来越多地应用于各种手持便携终端当中。以下我们将通过详细介绍C55x的CPU内核结构,讨论其并行处理技术的应用。 C55x DSP内核结构 C55x DSP是一款采用改良型哈佛结构,高度模块化的数字信号处理器拥有比普通DSP更为丰富的硬件资源,能够有效提高运算能力。其内核结构如图1所示,整个处理器内部分为5个大的功能单元:存储器缓冲单元(M单元)、指令缓冲单元(I单元)、程序控制单元(P单元)、地址生成单元(A单元)和数据计算单元(D单元),各个功能单元之间通过总线连接。C55x DSP中有1条32位程序数据总线(P总线),1条24位程序地址总线(PA总线),5条16位的数据总线(B、C、D、E、F总线)和5条24位的数据地址总线(BA、CA、DA、EA、FA总线)。这种高度模块化的多总线结构使得C55x DSP拥有超强的并行处理能力。 M单元主要管理数据区(包括I/O数据区)与中央处理器(CPU)之间的数据传送,使得高速CPU与外部相对低速的存储器之间在吞吐量上的瓶颈可以得到一定程度的缓解。 I单元从程序数据总线接收程序代码,并将其放入指令缓冲队列(IBQ)中,然后利用指令译码器将指令缓冲队列中的程序代码进行译码,最后再将译码后的指令送给P单元、A单元、D单元进行处理。 P单元主要是通过判断是否满足条件执行指令的条件来控制程序地址的产生,达到控制程序流程的目的。程序控制单元中还含有程序控制寄存器、循环控制寄存器、中断寄存器和状态寄存器等硬件寄存器。通过循环控制寄存

大数据并行处理方法与举例

大数据并行处理方法与举例 1、介绍 1.1 背景 互联网行业中,日常运营中生成、累积的用户网络行为数据等大数据规模相当庞大,以 至于不能用G或T来衡量。大数据到底有多大?一组名为“互联网上一天”的数据告诉我 们,一天之中,互联网产生的全部内容可以刻满1.68亿张DVD;发出的邮件有2940亿封之 多(相当于美国两年的纸质信件数量);发出的社区帖子达200万个(相当于《时代》杂志770年的文字量);卖出的手机为37.8万台,高于全球每天出生的婴儿数量37.1万……而到 了2020年,全世界所产生的数据规模将达到今天的44倍。可以说,人类社会已经步入了大 数据时代。然而,大数据用现有的一般技术又难以处理,并且海量的非结构化数据带来的并 不仅仅是存储、传输的问题,做好海量非结构化数据分析以及快速处理以更好的服务客户、 提高业务效率已经成为紧迫的问题。 伴随着数据规模的爆炸式增长,数据并行分析处理技术也在不断进行着改进,以满足大 数据处理对实时性的需求。数据并行处理(Data Parallel Processing)是指计算机系统能够同 时执行两个或更多个处理机的一种计算方法。并行处理的主要目的是节省大型和复杂问题的 解决时间。为使用并行处理,首先需要对程序进行并行化处理,也就是说将工作各部分分配 到不同处理机中。当下比较流行的大数据分布式计算应用最具有代表性的有:MapReduce、Spark和GraphX。下面详细介绍这三种应用的基本原理及应用例子。 1.2 MapReduce 2006年由Apache基金会开发的Hadoop项目,由分布式文件系统HDFS和MapReduce 工作引擎所组成。其中MapReduce采用“分而治之”的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。简单地说,MapReduce就是“任务的分解与结果的汇总”。在Hadoop中,用于执行MapReduce任务的机器角色有两个:一个是JobTracker;另一个是TaskTracker,JobTracker是用于调度工作的,TaskTracker是用于执行工作的。一个Hadoop集群中只有一台JobTracker。在分布式计算中,MapReduce框架负责处理了并行编程中分布式存储、工作调度、负载均衡、容错均衡、容错处理以及网络通信等复杂问题,把处理过程高度抽象为两个函数:map和reduce,map负责把任务分解成多个任务,reduce负责把分解后多任务处理的结果汇总起来。MapReduce极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 MapReduce在企业中被非常广泛地利用,包括分布grep、分布排序、web连接图反转、

计算机系统结构与并行处理

第 1 页 ( 共 8 页 ) 命题纸使用说明:1、字迹必须端正,以黑色碳素墨水书写在框线内,文字与图均不得剪贴,以保证“扫描”质量; 2、命题纸只作考试(测验)命题所用,不得移作他用。 大学 2003 ~ 2004 学年 秋 季学期试卷 课程名:计算机系统结构与并行处理(一) 学分:_4_ 学号:_______ 姓名:_________ 院:计算机学院 一.填充题: (每小题3分、共12分) 1.计算机系统结构定义是程序设计者所看到的计算机属性,即概念性,结构,功能性。 2.虚拟存储系统,辅存容量为228Byte ,主存容量为216Byte ,页面为1Kbyte ,则MEM 系统提供的程序空间有 218 页,对应实存空间 26 页,若采用组相联,则整个虚存应分为 212 区。 3.流水线结构的并行性是采用 时间重迭 的技术途径。 4.在系统结构中,程序访问局部化性质应用于 cache , 流水线, 虚拟存储器 等方面。 二.简答题: (每小题4分、共24分) 1.简述系列机的概念。 先设计一种系统结构;按其设计它的系统软件; 按照器件状况和硬件技术,研究这种结构的各种实现方法; 按速度,价格等不同要求分别提供不同速度,不同配置的各档机器。 成 绩

第 2 页 ( 共 8 页 ) 2.存储器层次结构是怎样的?其容量、速度、价格是怎样分布的。 速度越来越快,价格越来越高寄存器组 cache 主存储器 辅助存储器 后援存储器 容量越来越 大 3.简述虚拟计算机概念。 计算机只对观察者而存在;功能体现在广义语言上;对该语言提供解释手段;作用在信息处理或控制对象上;简言之,是由软件实现的机器。 4.What is the policy of “write back” when writing to the cache? (answer in English) The information is written only to the block in the cache. The modified cache block is written to main memory only when it is replaced.

流水线与并行处理技术

流水线与并行处理 1. 概述 流水线技术导致了关键路径的缩短,从而可以提高时钟速度或采样速度,或者可以在同样速度下降低功耗。在并行处理中,多个输出在一个时钟周期内并行地计算。这样,有效采样速度提高到与并行级数相当的倍数。与流水线类似,并行处理也能够用来降低功耗。 考虑3阶有限冲激响应(FIR )数字滤波器: y(n) = ax(n) + bx(n-1) + cx(n-2) (1-1) 其框图实现示意图如图1所示: 图1 一个3阶FIR 滤波器 关键路径(或者处理一个新样点所需要的最小时间)由1个乘法与2个加法器时间来限定。如果T M 是乘法所用的时间,T A 是加法操作需要的时间,T sample 是采样周期,则必须满足: T sample ≥ T M + 2T A (1-2) 因而,采样频率(f sample )(也称为吞吐率或迭代速率),由下式给出: f sample ≤ A M T T 21 (1-3) 流水线采用沿着数据通路引入流水线锁存器(本人理解是寄存器)的方法来减小有效关键路径(effective critical path )。并行处理提高采样频率是采用复制硬件的方法,以使几个输入能够并行的处理,而几个输出能够在同一时间产生出来。 2. FIR 数字滤波器的流水线 其流水线实现是通过引入两个附加锁存器而得到的,如图2所示:

图2 流水线FIR滤波器,其中垂直虚线代表一个前馈割集关键路径现在由T M + 2T A减小为T M + T A。在这种安排下,当左边的加法器启动当前迭代计算的同时,右边的加法器正在完成前次迭代结果的计算。 必须注意到,在一个M级流水线系统中,从输入到输出的任一路径上的延时原件数目是(M-1),它要大于在原始时序电路中同一路径上的延时元件数。虽然流水线技术减小了关键路径,但是它付出了增加迟滞(latency)的代价。迟滞实质上是流水线系统第一个输出数据的时间与原来时序系统第一个输出数据时间相比的滞后。流水线技术缺点:增加了锁存器数目和增加了系统的迟滞。 下面要点需要注意: (1)一个架构的速度(或时钟周期)由任意两个锁存器间、或一个输入与一个锁存器间、或者一个锁存器与一个输出间、或输入与输出间路径中最长的路径限定。 (2)这个最长的路径或“关键路径”可以通过在架构中适当插入流水线锁存器来减小。 (3)流水线锁存器只能按照穿过任一图的“前馈割集(feed-forward cutset)”的方式插入。 割集:割集是一个图的边的集合,如果从图中移去这些边,图就成为不相连的了。 前馈割集:如果数据在割集的所有边上都沿前进的方向移动,这个割集就称为前馈割集。

大数据处理技术ppt讲课稿

大数据处理技术ppt讲课稿 科信办刘伟 第一节Mapreduce编程模型: 1.技术背景: 分布式并行计算是大数据(pb)处理的有效方法,编写正确高效的大规模并行分布式程序是计算机工程领域的难题:分布式并行计算是大数据(pb)处理的有效方法,编写正确高效的大规模并行分布式程序是计算机工程领域的难题。并行计算的模型、计算任务分发、计算机结果合并、计算节点的通讯、计算节点的负载均衡、计算机节点容错处理、节点文件的管理等方面都要考虑。 谷歌的关于mapreduce论文里这么形容他们遇到的难题:由于输入的数据量巨大,因此要想在可接受的时间内完成运算,只有将这些计算分布在成百上千的主机上。如何处理并行计算、如何分发数据、如何处理错误?所有这些问题综合在一起,需要大量的代码处理,因此也使得原本简单的运算变得难以处理,普通程序员无法进行大数据处理。 为了解决上述复杂的问题,谷歌设计一个新的抽象模型,使用这个抽象模型,普通程序员只要表述他们想要执行的简单运算即可,而不必关心并行计算、容错、数据分布、负载均衡等复杂的细节,这些问题都被封装了,交个了后台程序来处理。这个模型就是mapreduce。 谷歌2004年公布的mapreduce编程模型,在工业、学术界产生巨大影响,以至于谈大数据必谈mapreduce。 学术界和工业界就此开始了漫漫的追赶之路。这期间,工业界试图做的事情就是要实现一个能够媲美或者比Google mapreduce更好的系统,多年的努力下来,Hadoop(开源)脱颖而出,成为外界实现MapReduce计算模型事实上的标准,围绕着Hadoop,已经形成了一个庞大的生态系统 2. mapreduce的概念: MapReduce是一个编程模型,一个处理和生成超大数据集的算法模型的相关实现。简单的一句话解释MapReduce就是“任务的分解与结果的汇总”。MapReduce从它名字上来看就大致可以看出个缘由,两个动词Map和Reduce,“Map(展开)”就是将一个任务分解成为多个任务,“Reduce”就是将分解后多任务处理的结果汇总起来,得出最后的分析结果。 mapreduce成功的最大因素是它简单的编程模型。程序员只要按照这个框架的要求,设计map和reduce函数,剩下的工作,如分布式存储、节点调度、负载均衡、节点通讯、容错处理和故障恢复都由mapreduce框架(比如hadoop)自动完成,设计的程序有很高的扩展性。所以,站在计算的两端来看,与我们通常熟悉的串行计算没有任何差别,所有的复杂性都在中间隐藏了。它让那些没有多少并行计算和分布式处理经验的开发人员也可以开发并行应用,开发人员只需要实现map 和reduce 两个接口函数,即可完成TB级数据的计算,这也就是MapReduce的价值所在,通过简化编程模型,降低了开发并行应用的入门门槛,并行计算就可以得到更广泛的应用。 3.mapreduce的编程模型原理 开发人员用两个函数表达这个计算:Map和Reduce,首先创建一个Map函数处理一个基于key/value pair的数据集合,输出中间的基于key/value pair的数据集合,然后再创建一个Reduce函数用来合并所有的具有相同中间key值的中间value值,就完成了大数据的处理,剩下的工作由计算机集群自动完成。 即:(input) ====> map(k1,v1) ->list(k2,v2) ===> combine---> => reduce(k2,list(v2)) ->list(v2) >(output)

并行处理技术与并行计算机

并行处理技术与并行计算机 [摘要]:本文从计算机的体系结构和软件系统两方面阐述了并行处理技术的主要技术,并介绍了并行计算机发展的现状和趋势。 [关键词]:并行处理,并行计算机 [ABSTRACT]:In this paper,we summarize the primary technology of parallel processing from two aspect--------architecture and software,and we also introduce the status in quo and trend of parallel computer. [KEYWORDS]:Parallel Processing;Parallel Computer; 引言 计算机系统发展到今天,其性能价格已经极大的满足了多数人的需要,VLSI技术的发展使得计算机系统的性能得以飞速的提高..单处理机系统提高运算速度的主要途径是体系结构和电路工艺上的改进.结构上包括流水线结构,向量处理和指令级并行性的开发等,它只能把速度提高大约十倍,电路上的新材料还未成熟,而微小化几乎要接近极限. 在80年代中期,美国科技政策署就提出了巨大挑战(Grand Challenges)的任务,其中的气候模拟,半导体模拟,受控核聚变研究,海洋环流等需要大量复杂计算的问题都需要运算速度比现有的系统高的多的超级计算机. 早在80年代初,各种16/32位的高性能微处理机的并行机系统就出现了,并行处理技术以其高性能,广大的发展潜力,必将成为21世纪制造高性能计算机的关键计算.对并行处理技术的研究包括了并行机硬件和并行软件系统.本文将在这两方面进行探讨,最后说明目前并行计算机的一些发展概况及趋势. 并行处理技术 1.并行机的体系结构 对于计算机系统,存在着几种不同的分类法。本文将根据并行计算机的基本结构特点,分成以下四种结构:传统的向量并行机VPP,多处理机MP,工作站机群NOW及大规模并行处理机MPP。 1.1VPP传统的向量并行机 向量机已经使用了十几年,到现在,其编译技术日益成熟,适用范围逐步扩大。向量机发展到现在,已经遇到了严重的障碍,主要有三个方面:首先,它的效率取决于应用程序中可向量化语句所占的比例。仅仅采用向量流水技术,加速比不会很高。另一方面,提高向量机性能的主要途径是加快主频,而现在主频的再提高潜力不大。其次,向量机主要开发低层次的并行性,而低层次的并行有一定的限度。最后是它的可伸缩性。复杂度不允许连接太多的处理机。 一些主要的向量机有CD C7600,Cyber205,ETA-10,CRAY1,CRAY YMP/C90,Fujitsu VP200VP500,NEC的SX-3等。 1.2多处理机MP

大数据处理关键技术教学教材

在大数据时代,传统的数据处理方法还适用吗? 大数据环境下的数据处理需求 大数据环境下数据来源非常丰富且数据类型多样,存储和分析挖掘的数据量庞大,对数据展现的要求较高,并且很看重数据处理的高效性和可用性。 传统数据处理方法的不足 传统的数据采集来源单一,且存储、管理和分析数据量也相对较小,大多采用关系型数据库和并行数据仓库即可处理。对依靠并行计算提升数据处理速度方面而言,传统的并行数据库技术追求高度一致性和容错性,根据CAP理论,难以保证其可用性和扩展性。 传统的数据处理方法是以处理器为中心,而大数据环境下,需要采取以数据为中心的模式,减少数据移动带来的开销。因此,传统的数据处理方法,已经不能适应大数据的需求! 大数据的处理流程包括哪些环节?每个环节有哪些主要工具? 大数据的基本处理流程与传统数据处理流程并无太大差异,主要区别在于:由于大数据要处理大量、非结构化的数据,所以在各个处理环节中都可以采用MapReduce等方式进行并行处理。 大数据技术为什么能提高数据的处理速度? 大数据的并行处理利器——MapReduce 大数据可以通过MapReduce这一并行处理技术来提高数据的处理速度。MapReduce的设计初衷是通过大量廉价服务器实现大数据并行处理,对数据一致性要求不高,其突出优势是具有扩展性和可用性,特别适用于海量的结构化、半结构化及非结构化数据的混合处理。

MapReduce将传统的查询、分解及数据分析进行分布式处理,将处理任务分配到不同的处理节点,因此具有更强的并行处理能力。作为一个简化的并行处理的编程模型,MapReduce还降低了开发并行应用的门槛。 MapReduce是一套软件框架,包括Map(映射)和Reduce(化简)两个阶段,可以进行海量数据分割、任务分解与结果汇总,从而完成海量数据的并行处理。 MapReduce的工作原理其实是先分后合的数据处理方式。Map即“分解”,把海量数据分割成了若干部分,分给多台处理器并行处理;Reduce即“合并”,把各台处理器处理后的结果进行汇总操作以得到最终结果。如右图所示,如果采用MapReduce来统计不同几何形状的数量,它会先把任务分配到两个节点,由两个节点分别并行统计,然后再把它们的结果汇总,得到最终的计算结果。 MapReduce适合进行数据分析、日志分析、商业智能分析、客户营销、大规模索引等业务,并具有非常明显的效果。通过结合MapReduce技术进行实时分析,某家电公司的信用计算时间从33小时缩短到8秒,而MKI的基因分析时间从数天缩短到20分钟。

指令级同步的高性能并行处理系统

第32卷第1期2000年2月 哈尔滨工业大学学报 】OURNALOF}nRB删矾S唧rIEOFTECHNOLDGY Ⅷ.32.Hol 肺..2000 文章编号:0367—6234(a000)OI一00丁5一03 指令级同步的高性能并行处理系统 郭恒业,阎艳,刘劲峰 (噜尔滨工业大学计算机系,黑龙江哈尔滨150001) 摘要:在诸如虚拟现实技术等许多应用技术中.具有实时性的视景生成系统都被列为最关键技术之一,而 目前的计算机技术远远满足不了人们的期望值,于是探索提高处理速度一直成为人们注视的焦点.结合九 五预研工作设计了采用指令级同步的高性能并行处理系统——计算机图像生成系统(cIG).以此为例,说明 如何结台商品化的通用处理器和自行设计的专用处理器,设计一个高性能并行处理系统的方法:包括硬件设 计方法,时序同步与指令同步措施,编程技术等关键技术。实践证明,采用这种技术解决了许多采用其他并 行处理方法难以解决的问题 关键词:时序同步;指令同步;并行处理器 中围分类号:TP3021文献标识码:A Higllperfml咖ce町rsteInfbr h吲m岫IIent娜hroIliza‰ CUOHe“g—ye,YANY肌,LⅢJ抽?feng (Dep【0fc呷puler,H曲inhdt址e 0f碱ndq鼎,Ha尚n150∞1,cllina) Abs椭ct:’Ihe砌nd坩erencebetweeIl t|l。parallelprocesssystemininstllmleIltsync}螂1i髓non卸d【he州i60nalparaUelprocess5ystemisco。npa刊.ThehardwaresysIemarchitectureand出epr0孕虬衄i119Ⅱ陀出odare唧lained.The。qu丑lrankstn】c七ureor出epipehnestrIJctLl咒usingthepa同lelproc髓sunitsininsmⅡnentsynchronizad0Ⅱisil—IustratedThekeyt。chnique0fbuildinghardwafeis10use出esarneadd弛sstoaccess山ema抽rnerrDIyandt11eex—Ie工lded|玳粗日ntat山esame t岫.Thei埘出uInentintheexlendedmemoryconⅡnIsEheope洲ons0fex刚edproces.sorTheke)rpID差即mm.mgsteps:Tb印g哪jn出esaⅡlelineusillgbo山dle8p。cialsemenceandgeneral8entencesepamtedh)rspecmsFnbol;T0rnaptlle addresS;T0㈣Pileh忡lypes0flan弘88esinpr叩erorder;T0o。昏岫泌therIlin【okmdableresults. K盯w叫凼:Ⅱ删ngsynchIonizadon;inshrIlents柙ch瑚lizati0|l;pa商leIpK℃es鲫’ 目前,商品化的通用处理器有着极好的性能/价格比,但在许多具体应用中,例如实时计算机图像生成系统(cIG)以及专用图形工作站的设计,为了满足复杂场景情况下的实时要求(每秒25—30帧以上的生成速度),必须将许多算法设计成硬件,成为一个自行设计的专用处理器,而许多功能(例如浮点运算等)使用商品化的通用处理器(例如DSP芯片)比自行设计要好,因此就提出一个 收稿日期:1999—03—03 作者简介:郭恒业“舛7一).男.研究员如何将这些通用处理器芯片和专用处理器芯片结合的问题. 本文结合设计计算机图像生成系统(cIG)的实践经验和设计理论讨论这一间题, 1体系结构 从计算机设计理论上看,在并行处理器领域,常用以下3种体系结构: (1)全对称多处理机系统(孙IP)“,它用速度较高的总线式交叉开关进行多处理器问的互联,处理器间的同步依靠共享内存的数据交换,其主  万方数据

分布式计算机并行处理技术英文翻译

A MODERN COURSE ON PARALLEL AND DISTRIBUTED PROCESSING Lubomir Ivanov Department of Computer Science Iona College 715 North Avenue New Rochelle NY 10801 tel.: 914-633-2342 email: livanov@https://www.wendangku.net/doc/c58074773.html, 摘要 在发展和并行计算系统的使用LED为训练有素的专业人员提供的硬件和软件方面的并行和分布式计算的飞速发展,知识的需要。本课程旨在帮助学生准备工作要求的给他们的实践经验与并行计算机另外,本课程强调软件基本联系计算机科学与其他学科如生物学生物化学,物理学和天文学,使用并行计算是平凡的。 I 简介 并行计算,多年来被视为一个纯粹的学术努力,逐渐成为现代主流的计算有很多原因的必要性:目前的微处理器技术似乎是最后到达极限的时钟速度,CPU可以操作与合理的冷却经典的并行计算技术,如SIMD已重新在上下文中的通用微处理器的另一方面的迅速发展,生物化学,物理学和天文学的急剧增加,需要更强大的计算平台的建模和模拟复杂的现实世界的现象和过程的新的领域如生物计算浸没在计算机科学与其他学科之间的界限,要求更大的广度和深度的知识和这些技能包括技术从业人员深入了解并行计算从硬件和软件的角度来看D只能通过丰富的实践工作经验的并行系统和项目。 准备这样受过高度训练的专业人士能够设计、实施和运行并行系统的软件和硬件水平的计算机科学课程必须包括一个覆盖面更广的并行计算在他们的课程,传统的课程作为选修课教并行计算是老年人或研究生课程通常包括典型的并行计算的历史概述主要的建筑方法历史意义的机加上一个简短的介绍各种不同的并行编程范式在现代并行体系结构和并行编程需要这样的治疗的主体是不够的同时学习ILLIAC IV和Cray YMP可能是有趣的从研究的角度设计的多样性决定,在这些早期的体系结构没有准备的学生适应现代的并行处理本文对平行轮廓上级本科课程的结构和内容,分布式计算,重点主要集中在并行和线程编程得到充分接触到现代的并行体系结构和理论课围绕基于目前感兴趣的问题,科学界的这些项目都是由使用支持线程的语言学生实施了一些比较大型的项目,现代技术(如Java)和并行编程库,如消息传递接口(MPI)除了开发并行算法的思想和编程技巧的学生学会估计他们的软件的预期的性能,通过分析其算法的运行时间的数目作为一个功能各种类型的过程的物理处理器和互连网络的通信能力,学生熟悉一些关键的现代并行体系结构研究CE某些方面的分布式操作系统的开发和理解映射虚拟流程,以最大限度地提高性能的机器的底层物理硬件的问题。 在本文余下的部分中,我们列出了需要并行和分布式计算的讨论的一个基本分类的并行体系结构和软件考虑一些现代的潮流并行计算和提出我们的并行和分布式计算过程的细节。

Oracle数据库并行处理技术详解

Oracle数据库并行处理技术是数据库的一项核心技术,它使组织能够高效地管理和访问TB级的数据。如果不能提供高效的Oracle数据库并行处理技术,这些大型数据库(通常用于数据仓库但也越来越多地出现在业务系统中)将不会存在。 简而言之,并行处理就是利用多个CPU和I/O资源来执行单个数据库操作。尽管现在每个主要的数据库供应商都声称可以提供并行处理能力,但每个供应商所提供的体系结构其实存在关键的差异。 本文讨论Oracle 9i并行处理的体系结构,并说明于在实际应用中其相对于其它体系结构的优越性。需要着重指出的是,Oracle9i并行处理体系结构的主要优点在于它能在任何情况下完全利用底层硬件基础架构——每个处理器单元、每个内存字节以及所有可用的I/O带宽。本白皮书还讲述Oracle 并行处理组件与其它关键业务组件(例如:Oracle RealApplication Cluster)的无缝集成。 Oracle数据库并行处理技术简介 现在的数据库,无论是用于数据仓库、操作数据存储(ODS)或OLTP 系统,都包含丰富的信息。然而,由于其中涉及海量数据,及时查找和展示信息是一个巨大的挑战。Oracle数据库并行处理技术能够解决这一挑战。使用Oracle数据库并行处理技术,数分种内(而非数小时或数天)就可以处理数TB级的数据。Oracle数据库并行处理技术通过利用所有可用的硬件资源取得这样的高性能:多个CPU、多个I/O通道、多个存储阵列和磁盘驱动器,以及大量的内存。数据库软件越能有效地利用所有这些资源,处理查询和其它数据库操作就越有效。 此外,现在的数据库应用的复杂性大大都增强了,不仅需要支持大量并发用户,而且需要管理不同类型的用户。因此,一个并行查询体系结构不仅应该确保底层硬件平台的所有资源都得到充分利用,而且应该更进一步,将这些资源适当地分配给多个并发请求。很显然,支持CEO的战略决策的请求比执行批处理报表更加重要,并行查询体系结构应该能够处理这些商务要求:不仅基于请求自身,而且应该基于发出请求的人以及当前可用的系统资源的数量来做出动态的分配。 Oracle9i 的并行处理体系结构能够全面满足这些要求,Oracle9i的体系结构不仅提供业界领先的高性能,而且是唯一可以自适应和动态调整的。 Oracle9i 的并行处理体系结构充分利用每种硬件投资――SMP、群集或MPP的优势——在任何时间保证最佳的吞吐量和连续的、优化的系统使用量。 Oracle9i 数据库根据可用资源、请求优先级和实际系统负载控制来平衡所有并行操作。 Oracle数据库并行处理技术并行化设计策略——静态与动态 并行处理的思想就是将单个任务分解为多个更小的单元。不是通过一个进程完成所有工作,而是将任务并行化而使多个进程同时在更小的单元上运行。这可以极大地提高性能和最佳地利用系统。然而,并行处理的最关键部分是如何作出将单个任务分成更小的工作单元的正确决策。 典型地,有两种方法用于实现数据库系统的并行处理。主要区别在于是否需要进行物理数据布局,将静态的数据分区作为并行处理的前提。 Oracle数据库并行处理技术之通过物理数据分区的静态并行——不共享 在纯不共享数据库体系结构中必须将数据库文件在多计算机系统的节点上进行分区才能进行并行处理。每个节点拥有一个数据子集,拥有节点使用单一进程或线程,以独占方式执行对此数据子集的所有访问。数据访问不能在分区内并行。(有时,也用术语“虚拟处理器”来代替节点。“虚拟处理器”是在SMP计算机上模拟不共享节点的一种机制。为了简单,在讨论不共享体系结构时,我们将统一使用“节点”作为术语)。换句话说,纯不共享系统使用分区或受限访问方法在多个处理节点间划分工作。节点对数据所有权的改变相对少见——为了适应业务需求的改变而进行的数据库重组、添加或删除节点以及节点故障是所有权更改的典型原因。这种数据所有权的改变对纯不共享系统而言总是意味着要进行人工管理。

相关文档