基于MPI

2024-06-09

基于MPI(精选八篇)

基于MPI 篇1

对于更多的科学家和工程师来说, 高性能计算与以往任何时候相比, 都成为了一种负担的得起的资源。高质量开源软件和商用硬件的结合极大地影响了现在流行的专用Beowulf类机群和工作站机群系统。已证明消息传递是一种有效的计算模型, 特别适合 (但不局限于) 分布式内存体系结构。

1 背景

1.1 MPI

MPI (消息传递接口) 是一个标准的、便捷的, 适用于各种并行计算机上设计函数的消息传递系统。这种标准定义了语法和语义库 (MPI不是一种程序设计语言的扩展) , 它允许所有的用户用主要的科学的程序设计语言 (Fortran, C, 和C++) 编写简单的程序。

1.2 Python

Python是一种现代而成熟的、易于学习, 强大的程序设计语言, 并且拥有不断增长的用户群。它具有高效率高层次的数据结构和简单且有效的具有动态类型和动态绑定的面向对象编程的方法。Python优美的语法, 连同它解释的自然性, 使它在许多区域的大多数平台上, 对于脚本和快速应用程序的开发上成为一种理想的语言。

1.3 什么是基于Python的MPI?

由于使用纯粹的Python而不是使用编译语言或者第三方的MPI工具来开发一个MPI工具, 所以Python具有足够的联网能力。这种方法是很有吸引力的, 因为它确保了直接方便地在任何平台上运行Python。然而, 即使一些基本的MPI特征 (像通信调度和数据类型处理) 将会要求大量的工作被开发。而且, 获取合理的性能和访问特定的平台的特征和专用的通信硬件将会要求编译语言的支持。

2 基于Python的MPI的新特征

这一节呈现了一个MPI性能的调查以及基于Python的MPI的新的可用的特征, 在Python的设计环境中为了提高通信性能和更好地支持经典MPI-1的操作。近来免费提供的, 高质量的和开放源码的MPI-2的实现很大力度上推动了包含另一类功能的集合, 为了对几乎所有的MPI-2的扩充提供支持。

2.1 对象序列

Python标准库支持数据保持的各种不同机制。他们中的许多依赖于磁盘存储器, 但是pickling和marshaling也可以和内存缓冲器一起起作用。

Pickle (速度较慢, 在纯Python写的) 模块和c Pickle (更快, 用C编写的) 模块给连续的通用Python对象提供可扩展的工具, 这些对象使用ASCII和二进制格式。排列模型为使用二进制格式的特殊的Python提供了内置的Python对象, 但是独立于机器体系结构的命令。

2.2 存储缓冲器的直接通信

基于Python的MPI得到了改善, 支持任何输出的单段缓冲接口的对象直接通信。这个接口是一个标准的Python机制, 靠某些类型 (如字符串和数值数组) 来提供, 允许用C语言访问包括有关的数据的连续内存缓冲区 (即地址和长度) 。

2.3 非阻塞和持续的通信

Comm类的Isend () 和Irecv () 方法分别发起了一个发送和接收的操作。这些方法返回一个请求的实例, 特别标明开始的操作。它的完成可以使用Test () , Wait () , 和cancel () 诸如此的请求类的方法来控制。

2.4 MPI-2扩充

2.4.1. 动态进程管理

在基于Python的MPI中, 新的进程在内部通信器 (即, Intracomm实例) 之内可以通过调用Spawn () 方法来创建。此调用返回一个新的内部通信器 (即Intercomm实例) , 可以用于进行父类及子类进程之间点对点的和集体通信。

不相交的进程组可以建立一个客户机/服务器方式的通信。服务器应用程序必须首先调用Open_port () 函数, 打开一个“端口”和Publish_name () 函数, 去公布一个所提供的“服务”, 下次在一个Intracomm实例中调用Accept () 方法。客户端应用程序通过调用Lookup_name () 函数可以先找到一个发布的“服务”, 它返回了在一台服务器能联络上的“端口”;并且下次调用Connect () 方法返回一个Intracomm实例。Accept () and Connect () 都返回一个Intercomm的实例。当客户机/服务器进程之间的连接不再需要时, 所有的都必须合作地调用Comm类的Disconnect () 方法。另外, 服务器应用程序可以通过Unpublish_name () 和Close_port () 函数释放资源。

2.4.2. 单向通信

单向通信 (也称为远程存储器访问, RMA) 用RMA网络硬件的一个单向的接口补充传统双向的MPI通信模型。这种扩充降低了使用共享内存的范例编写应用程序的延迟和软件开销。单向通信的语法是相当复杂的。MPI的远程内存访问的应用程序接口围绕使用Windows的对象, 而直观地指定一个可用于远程操作进程的内存区域。

3 结论

基于Python的MPI为用Python语言编写的并行程序中的使用消息传递范例提供了一个基础层。它使用任何可用的MPI规范标准保留的语法和语义得到MPI的实现。它特别适合于其他MPI的集成库, 并协助运行在并行环境下的复杂的Python驱动程序的开发。

参考文献

[1]J.Amundson, P.Spentzouris, J.Qiang, R.Ryne, Synergia:a 3D accelerator modelling tool with 3D space charge, J.Comput.Phys.211 (1) (2006) 229–248.

[2]P.Barrett, J.Hunter, P.Greenfield, Matplotlib—a portable Python plotting package, Astronomical Data Analysis Software&Systems XIV, 2004.

[3]D.M.Beazley, P.S.Lomdahl, Feeding a large scale physics application to Python, in:Proceedings of 6th International Python Conference, San Jose, California, 1997, pp.21–29.

基于MPI 篇2

摘要:一种自来水厂分布式监控系统的设计。该系统的主、从站PLC之间采用MPI网络通信,具有运行可靠、性能价格比高的特点,适用于中小规模的分布式监控场合。

关键词:MPI网络 PLC 监控系统

目前,应用于各种领域和场合的计算机分布式监控系统种类繁多,设计方法和构成方式各不相同,但共同的目标都是朝着高效、可靠和通用方向发展。此外,所设计的监控系统应具有较高的性能价格比也是业内人士的共识。笔者根据多年的开发经验,设计了一种性能价格比较高的适用于中小型的分布式数据采集与监控,运行效果良好。

1 监控系统的构成

某自来水厂按功能分为两部分,一部分是水源地;另一部分是水厂区,二者距离 900m。水源地的任务是通过三台深井泵对水厂区的蓄水池进行供水;而水厂区的`任务是对水池的水进行消毒处理后,通过加压泵向市区管路进行恒压供水。

整个监控系统由位于水厂区的上位PC机、主站PLC和水源地的三个从站PLC构成(见图1)。上位PC机通过CP5611MPI卡与主站PLC完成整个系统的现场数据检测、数据处理及计量等工作。主站PLC完成两方面任务,一是水厂区现场数据的采集及市区恒压供水的控制;二是与水源地的三个从站进行通信,完成水源地现场数据的采集与深井泵的控制。

监控系统的主站和从站PLC都选用西门子S7系列产品。该产品在工程领域应用广泛,尤其是有较强的是有较强的组网能力。S7系列PLC通常有四种组网方式:点对点、MPI多点网络、PROFIBUS和工业以太网。其中PROFIBUS现场总线的应用目前较为普遍,它有较好的通用性,速度达12Mbps,距离达28.5km,相关应用著作也较多。而其它方式如工业以太网方式对硬件要求较高;点对点的速度太慢,都不适合本监控系统。相对而言,MPI网络速度可达187.5Mbps;通过一级中继器可达距离1km。根据水厂的具体情况,我们最后确定了以MPI方式组成网络,主站CPU为S7-300系列的CPU312IFM;从站为S7-200系列的CPU222.这样既满足了系统要求,又相对于PROFIBUS网络节省了三分之一的开销,更重要的是为中小规模场合的分布式监控系统的设计提供了一种较高性能价格比的设计方法。至于中继器的选择,由于PLC的物理层采用RS485接口,所以有很多相关的第三方产品支持。从中我们选用一种带防雷保护的中继器,使系统的安全运行得到了保障。

2 主部PLC控制原理

主站PLC有三个任务:

(1)水厂现场数据采集;

(2)供水管恒压力控制;

(3)水源地数据采集及深井泵远程控制。

以CPU312IMF为核心的主站控制电路如图

基于MPI 篇3

1 Jacobi迭代算法

1.1 算法的数学描述

解Ax=b (1-1) 的Jacobi迭代法具有直观明了、通俗易懂、计算简单等特点, 所以这一方法是解线性方程组Ax=b的一般常用方法之一。设有方程组记为Ax=b, 其中A是n阶系数矩阵, b是n维向量。记D, -L, -U分别是A的对角、严格下三角、严格上三角部分构成的矩阵, 即A=D-L-U, 这时方程组可以变为Dx=b+ (L+U) x (1-2) , 其中如果方程组 (1-2) 右边的x已知, 由于D是对角矩阵, 可以很容易地求得左边的x, 这就是Jacobi迭代法的出发点。众所周知, Jacobi迭代的矩阵形式为其中B=D-1 (L+U) , f=D-1b, B为Jacobi方法迭代矩阵。

1.2 算法的并行性描述

Jacobi迭代是一种比较常见的迭代方法。Jacobi迭代的局部性很好, 传统的串行方法效率不高, 这里我们采用并行方法来实现Jacobi迭代, 可以取得很好的并行性。将参加迭代的数据按块分割后, 各块之间的数据除了相邻元素需要通信外, 在各块的内部可以完全独立地进行并行计算, 且随着计算规模的扩大, 通信的开销相对于计算来说比例会降低, 这将更有利于并行效果。

2 MPI并行计算方法简介

并行计算就是研究如何把一个需要非常巨大计算能力才能解决的问题分成许多小的部分, 然后把这些部分分配给许多计算机进行并行处理, 最后将这些计算结果综合起来得到最终的结果。用一句话说, 就是为了加快运算速度和解决大主存容量的求解问题的多计算机/多处理机的并行编程技术。MPI (Message Passing Interface) 是消息传递函数库标准规范, 由MPI论坛开发, 支持FORTRAN和C。MPI是一种消息传递编程模型, 也是现今最流行的并行计算编程方法。消息传递程序由多个进程组成, 其中每个进程有自己的控制线程且可执行不同代码, 它支持控制并行和数据并行两种。

3 用MPI程序实现Jacobi迭代

3.1 矩阵数据的分割

为了实现并行求解, 这里将参加迭代的数据按列进行分割, 并假设一共有4个进程同时并行进行计算。数据的分割结果如图1所示。

假设需要迭代的数据是N×N的矩阵, 令N=4×P, 按图示1进行数据划分, 则分布在4个不同进程上的数据分别是:进程0, A (N, 1:P) ;进程1, A (N, P+1:2P) ;进程2, A (N, 2P+1:3P) ;进程3, A (N, 3P+1:N) 。其中1:N代表矩阵中取第一列至第N列的数据。由于在迭代过程中, 边界点新值的计算需要相邻边界其它块的数据, 因此在每一个数据块的两侧又各增加一列的数据空间, 用于存放从相邻数据块通信得到的数据。

这样原来每个数据块的大小从N×P扩大到N (P+2) , 进程0和进程1的数据块只需扩大一块即可满足通信的要求, 但是这里为了编程的方便和形式的一致, 统一在两边都增加了数据块。

3.2 数据通信

计算和通信过程是这样的:首先对数组赋初值。注意对不同的进程, 赋值方式是不同的 (两个内部块相同, 但是内部块和两个外部块两两互不相同) 。然后便开始进行Jacobi迭代, 在迭代之前, 每个进程都需要从相邻的进程得到数据块, 同时每一个进程也都需要向相邻的进程提供数据块, 如图2所示。由于每一个新迭代点的值是由相邻点的旧值得到, 所以这里引入一个中间数组, 用来记录临时得到的新值, 一次迭代完成后, 再统一进行更新操作。

3.3 并行程序设计步骤

对于Jacobi迭代, 计算xi的新值时, 需要使用xi+1, xi+2, …, xn-1的旧值和x0, x1, …, xi-1的新值。在计算过程中, xi与x0, x1, …, xi-1及其xi+1, xi+2, …, xn-1的值会在不同的处理器 (进程) 中产生, 当计算出一个分量值后, 应立即广播给其它处理器以供给处理器对x的其它分量值计算。当它计算完x的所有分量后, 还要接收其它处理器发送的新的x分量, 为计算下一轮的x作准备。具体步骤如下:

第一步:MPI程序初始化;

第二步:第0号进程开始读取数据;

第三步:广播初始解向量数据;

第四步:所有进程并行的对主对角元素右边的数据求和;

第五步:迭代求解;

第六步:第0号进程将结果输出;

第七步:MPI程序结束。

3.4 测试用例及结果分析

假设有如下方程组:

通过手工数学计算, 得到方程组的精确解为:x1=-9/4;x2=4;x3=2。

现用Jacobi迭代并行求解。

如果迭代10次, 运行结果如下:

以上结果已经与精确值相当接近, 精度能够满足一般计算需求, 进一步将迭代次数放大到1000次, 运行结果如下:

以上结果已经是精确结果, 但实际运行时间却没有增加多少, 因为每增加一次迭代只需计算一次矩阵和向量乘法。

4 结束语

随着高性能计算和网络计算技术的普及, 并行计算技术正在渗透到现代社会的各个领域, 其应用前景将相当广阔。许多传统的算法都可以通过设计适当的并行计算模型, 应用并行计算方法实现, 从而提高其效率。MPI提供了良好的并行程序接口, 通过调用MPI的库程序, 可以达到并行化程序的目的, 但是并行程序的设计相对于串行程序的设计来说要复杂得多, 并行计算模型设计得越好, 并行程序的设计才能越简单。

摘要:Jacobi迭代法是解线性方程组的最常用方法, 它被用于工程中的众多领域。简要介绍了高性能计算的发展、并行计算及其MPI, 分析了Jacobi迭代的并行性, 进而在传统的串行迭代方法的基础上, 应用了目前最常用的并行计算方法——MPI来实现Jacobi迭代。

关键词:MPI,并行计算,Jacobi迭代,数据通信

参考文献

[1]陈国良.并行算法的设计与分析[M].北京:高等教育出版社, 2002.

[2]安虹, 陈国良.并行程序设计模型和语言[J].软件学报, 2002 (1) .

[3]都志辉, 李三立.高性能计算之并行编程技术——MPI并行程序设计[J].北京:清华大学出版社, 2001.

[4]杨爱民, 陈一鸣.MPI并行编程环境及程序设计[J].河北理工学院学报, 2005 (3) .

[5]莫则尧, 袁国兴.消息传递并行编程环境MPI[M].北京:科学出版社, 2001.

[6]王春霞.PC集群系统的并行开发环境MPI及其程序性能的分析研究[D].河南:郑州大学, 2003.

基于MPI 篇4

当前高性能并行计算技术在国内外越来越受到高度的重视。它在科学研究、工程技术以及军事等方面的应用,已经取得巨大的成就。并行计算是指同时对多个任务或多条指令、或对多个数据项进行处理。完成此项处理的计算机系统称为并行计算机系统,它是将多个处理器通过网络连接以一定的方式有序地组织起来。并行计算的主要目的:一是为了提供比传统计算机快的计算速度;二是解决传统计算机无法解决的问题。集群技术是近几年来新兴起的一项高性能计算技术,它是将一组相互独立的计算机通过高速的通信网络而组成的一个单一的计算机系统,并以单一系统的模式进行管理[1]。集群系统逐渐成为高性能并行计算的主要硬件平台。由于计算机集群系统具有开放的结构,支持它的并行编程环境需要开放的和支持异构的系统。目前最流行的基于集群的并行编程环境有两种:PVM(Parallel Virtual Machine)和MPI(Message Passing Interface)[2]。使用标准的通信协议-MPI,可以减少设计并行程序的复杂度,提高并行程序的可移植性,保证并行程序的执行性能,于是越来越多的人采用MPI作为集群并行开发环境。但在并行计算中,任务的分配极大地影响着并行计算机能否有效地发挥其性能和减少求解时间。本文探讨了基于MPI的主从式并行任务分配的算法和原理,在进行任务划分时利用了寻找连通分量的方法,在主从进程间任务分配的实现时利用队列实现了任务的动态分配,从而在一定程度上减少了时间开销、实现了负载平衡。

1 主从式并行任务中的MPI

MPI是消息传递并行程序设计的标准之一,是目前主要的并行环境。它适用于基于分布内存的并行计算机系统的消息传递模型,具有移植性好、功能强大、效率高等多种特点,而且有多种不同的免费、高效、实用的实现版本,几乎所有的并行计算机厂商都提供对它的支持,成为了事实上的并行编程标准[3]。

MPI由一组库函数组成,并行程序的各任务之间通过这些函数实现通信。这些函数包括初等函数(用来构造环境和相关事宜)、基本点对点消息传递函数和集合(组内)消息传递函数3类[4]。

MPI程序中第一个必须被调用的函数是MPI_Init(),且只能调用一次,完成初始化MPI编程环境,最后一个必须被调用的函数是MPI_Finalize(),使程序从MPI环境中退出。进程号的获取调用MPI_Comm_rank()函数,指定通信域间的进程数的获取调用MPI_Comm_size()函数,进程间的通信调用MPI_Send()进行消息发送,调用MPI_Recv()进行消息接收。此外,MPI并行程序的基本模式包括对等模式和主从模式,且MPI对阻塞和非阻塞两种通信模式提供了各种方式,包括标准模式、缓冲模式、同步模式和就绪模式等[5]。

2 主从式并行任务分配算法设计

在并行计算中,任务的划分应与求解问题的规模和处理机的结构密切相关,它极大地影响并行计算机能否有效地发挥其性能和减少求解时间。所以研究并行计算中任务分配是很有价值的,任务分配的策略有很多种,如:块分配、卷帘分配等,寻求到一个合理的方法对任务进行分配将会使并行计算机更有效地发挥其性能,提高其解题速度。传统的块分配法中,如果有m个处理器,则将任务分成m块,然后每个处理器或进程组负责完成其中一块任务。本文主要是在主从式下对任务分配进行研究和探讨,对于有n个任务,有些任务依赖于其他任务,将这些任务在主处理器中利用求连通分量的方法划分成后s个任务组(s不一定等于处理器的个数),再将各个任务组分配给各个从处理器,在分配给从处理器时利用队列来实现动态的负载平衡。

2.1 算法思想

给出n个任务,其中一些任务依赖于其他任务的完成,比如任务B依赖于任务A,即B必须在A任务完成后才能进行。在主处理器中,将n个任务编号为1到n,将这n个任务抽象为图中的n个结点,然后根据任务之间的依赖关系构建一个无向无环图(如任务j依赖与任务i,则在i到j连接一条无向边),接着利用求连通分量的方法将这n个任务分成m组,然后把这m个任务组以组为单位存放在任务队列中,同时在主处理器中设置一个记录空闲从进程的队列,由于队列具有“先进先出”的特点,使得主进程在为从进程分配任务时,总是先将任务分配给最先空闲的从进程,从而达到负载平衡[6]。当空闲进程队列为空时,主进程将封闭任务锁,使待解决的任务处于等待状态,直到有空闲从进程时再向该进程发送信号;空闲进程队列中包含了所有的进程且任务队列为空时,表明任务已经解决完,则主进程进行最后的运算。

2.2 任务分配的算法实现

设n为任务总数,task[]为任务队列,state[]为空闲进程队列,p为处理器数或进程数。二维矩阵Map[i][j]记录任务间的依赖关系,若j依赖与i,则Map[i][j]=Map[j],否则Map[i][j]=Map[j][i]=0。con[i]记录任务i所属连通分量(即属于哪一个任务组)。

核心算法如下:

根据任务依赖关系构建一个有向无环图

void dfs(const int &v,const int &m)

{//深度优先搜索遍历整个图,寻找与任务v相关的任务且划分到

//第m组

con[v]=m;

for(i=1;i<=n;++i) if(map[v][i]&&con[i]<0) dfs(i,m);

}

void work()

{//m标志任务组的组号同时记录组数,con[i]记录任务i所属联

//通分量,初始化为-1

for(i=1;i<=n;++i) if(con[i]<0)

{

dfs(i,++m);将搜索到的第m个任务组插入队列task[]

} }

void assignment()

{//主从进程间任务分配

For(i=1;i<=m;i++)

{

If(从处理器(或从进程)j空闲) {j插入队列state[],等待主进程分配任务}

If(state[]&task[]不为空) {State[]中位于队首的从进程k出队列,将任务i分配给k}

If(state[]为空,task[]不为空) {主进程关闭任务锁,等待从进程完成已分配的任务}

If(所有进程都在state[]中,且task[]为空) break;

} }

主进程计算最终结果

3 应用实例

本实例中先假设每个任务所需时间已知来说明上述算法的可行性,在实际中解决每个任务所需要的时间有处理器的配置决定。

已知有11个任务(编号为1到11),在同样的环境下,已知每个任务所需解决的时间分别为4s,3s,2s,1s,5s,3s,3s,2s,2s,5s,3s,其依赖关系如图1(括号中为完成该任务所需要的时间)所示,设有4个处理器,编号为0-3,选择0为主处理器,上述算法实现过程如下:

(1) 调用work()函数将图1中的任务进行划分,并计算出每个任务组一共需要的时间,结果如表1所示。

(2) 调用assignment()函数,进行主从器间任务分配,从处理器1-3所完成的任务和所需时间如表2所示。

结果分析:

由表2可知,处理器p1完成了一个任务组,p2、p3分别完成了2个任务组,但是它们所花时间却很接近,完成这11项任务总共所需计算时间为12s,可见利用本文的算法在时间上有了一定优化,且3个从处理器的负载达到了一定的平衡。

4 结 论

并行计算机在科学领域中的地位将会越来越高,对其性能优化的要求也会随着其应用范围的扩大而加强。本文针对任务分配问题,先利用了求连通分量的方法把n个任务划分成m个组,再利用队列的特征,将每组任务动态的分配给空闲从进程,并结合实例说明了我的算法思想的可行性。用本文的方法在一定程度上确实能达到负载平衡的目的,同时优化了问题解决的时间,而且由于每次主进程都是以任务组的形式分配给从进程,减少了通信次数,从而提高了通信粒度。因此本文的算法,对并行计算机的性能优化将产生一定程度的影响。

参考文献

[1]Jiamei-li.Master-Slave Parallel Mind Evolutionar Computation Based onMPI[J].Journal of North University of China(Natural Science edItion),2007,28.

[2]Chen Yan,Hao Lirui.The Analysis of the MPI Communication Technol-ogy Based on Cluster Computer Knowledge And Technology[J].1010-1011,1018.

[3]陈国良,安虹,陈崚,等.并行算法实践[M].高等教育出版社,2004.

[4]Liu Dong,Chang J ing,WeiWen-hong,et al.Research and Implementa tionof Parallel AntColonyOptimization AlgorithmBased on MPI[J].Journal ofGuangdong University of Technology,2008,25(1).

[5]张林波,迟学斌,莫则尧,等.并行算法导论[M].北京:清华大学出版社,2006.

基于MPI 篇5

随着计算机运行速度的大幅提高,计算流体力学(CFD)得到了蓬勃发展,这也促进了航空航天技术的发展。数值计算已经成为与理论分析和实验研究并列的研究流体问题的方法,直接数值模拟(DNS)方法目前是数值研究湍流运动的有效工具之一。然而,由于湍流运动的复杂性,使得数值计算在大雷诺数情况下的工作量非常巨大,在一定程度上限制了直接数值模拟方法在工程实际和理论研究中的应用。

计算流体力学工作者们努力寻求更好的办法来大规模提高计算速度,并行计算在此背景下应运而生。要实现直接数值模拟的并行,首先要解决不可压缩N-S方程的并行算法。

本文在MPI并行环境下,采用对N-S方程中不同项在不同方向进行并行的方法,对槽道湍流进行数值模拟。并将并行结果与串行结果进行对比,结果一致。

1 MPI并行简介

MPI是一个消息传递接口的标准[1],用于开发基于消息传递的并行程序。MPI子集由6个基本函数组成:MPI初始化、MPI结束、获取进程编号、获取指定通信域的进程数、消息发送和消息接受等。MPI支持以下四种通信模式:标准通信模式、缓冲通信模式、同步通信模式、就绪通信模式等。MPI提供了与C和Fortran语言的绑定。

2 本文问题的描述

对不可压缩流动的连续方程和Navier-Stokes方程进行无量纲化后的控制方程为:

u¯ixi=0 (1)

u¯it+u¯ju¯ixj=-Ρ¯xi+1Rexjxju¯i (2)

其中,Re=Umh/υ,Um是最大平均速度,h为半槽宽度,υ为运动学粘性系数。

计算时在展向做傅立叶展开,在流向和法向用紧致差分格式,详细情况可参见文献[2]。对时间离散时,线性项采用二阶精度的隐格式,非线性项采用二阶精度的显格式。设采用的计算网格数沿流向、法向、展向为m×l×n,则得到n个形如:

Axt+Δt=Bxt+Qt (3)

的方程组,方程的详细推导见文献[3]。其中,t为当前时刻,t+Δt为下一时刻;AB为系数矩阵;xt为当前时刻已求得的速度场;xt+Δt为下一时刻将要求的速度场;Qt为非线性项,它由当前时刻速度场求得。每一次循环迭代,主要由两部分组成:求非线性项Qt、解方程Axt+Δt=ft(其中ft=Bxt+Qt)。

在求方程组式(3)中的非线性项Qt时要进行非线性乘法,为了不产生混淆误差,需要将相关量的阶数扩大一倍再变到物理空间进行乘法,然后再变回谱空间,并将阶数缩回到原来阶数,详细情况可参见文献[4]。由于需要在展向扩大一倍,进行非线性乘,致使计算量非常大,需要进行并行计算。但由于傅立叶变化需要全场信息,如果在展向进行并行,将会带来大量的信息传递,耗费大量的机时。所以,我们的方法是在法向进行并行。

方程组式(3)是在法向和流向列出的,解方程是在法向和流向进行的,所以我们的方法是在展向进行并行。

3 并行算法

由于解方程和求非线性项不是在同一方向进行的,每迭代一次需要数据汇总一下,所以并行采用了主从模式。主进程要进行的工作为:读入初始数据、收集和发送数据、输出数据。从进程要进行的工作为:求非线性项Qt、解方程Axt+Δt=ft(其中ft=Bxt+Qt)。

求非线性项时沿法向进行并行,将流场沿法向分割,如图1所示;解方程时沿展向进行并行,将流场沿展向分割,如图2所示。

假设有p个从进程,设为Pi,i=1,2,…,p,设主进程为P0。初始流场x0及每次循环迭代得到的速度场xt的展向在谱空间,则并行的流程图如图3所示。

(1) 主进程P0读入初始流场x0,并将初始流场x0沿展向分割成p份,分割后的流场设为xzi0,i=1,2,…,p,然后将xzi0发给从进程Pi;

(2) 从进程Pi接收来自主进程P0的初始流场xzi0,i=1,2,…,p;

(3) 主进程P0将xt沿法向分割成p份,设为xyit,i=1,2,…,p,将xyit分别发送给p个从进程Pi,i=1,2,…,p;

(4) 从进程Pi收到数据xyit后,进行求非线性项Qyit的计算,包括多次的沿展向的求导、傅立叶变换、非线性乘法等,然后将Qyit向主进程P0发送;

(5) 主进程P0接收各从进程Pi的数据Qyit后,将Qyit沿法向合成,记为Qt;

(6) 与步骤(5)同时,各从进程Pi进行求Bxzit的计算,i=1,2,…,p;

(7) 主进程P0将Qt沿展向分成割p份,分割后的Qt记为Qzit,i=1,2,…,p,将Qzit分别发送给从进程Pi;

(8) 从进程Pi接收数据Qzit,到此,方程(3)的右端项均已求得(fzit= Bxzit+ Qzit),然后进行解方程Axzit+Δt= fzit的计算,得到速度场xzit+Δt(展向在谱空间),然后将xzit+Δt发送给主进程P0;

(9) 主进程P0收集各从进程Pi的数据xzit+Δt后,沿展向合成,得到展向在谱空间的速度场xt+Δt的全场信息。

4 结果对比

计算域在xyz方向的长度分别为2π、2、π,计算网格数为64×65×64,其中xz方向为均匀网格,y方向为变网格。本文采用Fortran90语言,分别编写了串行、并行程序,在曙光TC1700集群服务器下计算,系统为Linux,网络为千兆网。

图4给出了并行和串行两种算法下平均流速度剖面的对比;图5给出了并行和串行两种算法下雷诺应力的对比;图6给出了并行和串行两种算法下扰动速度均方根的对比。图中横坐标为法向坐标,曲线为串行结果,符号为并行结果。从图中可以看到,并行情况下的结果与串行情况下的结果完全一致。

本算例并行加速比为:S=TC/TB=12.39,其中:TC表示串行运行时间,即指在串行计算机上程序从开始到结束所用时间;TB表示并行运行时间,即指从并行计算开始时刻到最后的处理器完成运算所经过的时间。并行效率E为:E=S/p×100%=72.9%,其中:p表示参与并行计算的CPU个数,本文p=17。

5 结 语

本文提出了一种新的基于MPI的解不可压缩N-S方程的并行计算方法,该方法使用主从模式,对不可压缩N-S方程中的不同项在不同方向并行,该方法直观、易行、稳健。用该方法得到的并行结果与串行结果完全一致。而该并行方法能大幅提高计算速度,节省计算时间。

参考文献

[1]都志辉.高性能计算并行编程技术-MPI并行程序设计[M].北京:清华大学出版社,2001.

[2]Karniadakis G E,Israeli M,Orszag S A.High-order splitting methodsfor the incompressible Navier-stokes equations[J].Journal of Computa-tional Physics,1991,97:414-443.

[3]肖红林,周恒.槽道湍流的大涡模拟[D].天津:天津大学,2004.

基于MPI 篇6

蚁群算法是在现实世界的蚁群行为的基础上提出来的。现实世界中的各种蚂蚁、蜜蜂等有群居习惯的昆虫, 个体昆虫行为虽然很简单, 但是由数量众多的个体所组成的群体却能显现出相当复杂有序的群体行为。科学家通过仔细的观察发现, 蚂蚁和蚂蚁之间经过信息素等自身分泌的物质进行消息传递。运动中的蚂蚁可以在走过的路径上留下信息素, 并且这种信息素能影响其他蚂蚁对路径的选择, 这样信息素就对蚁群行为的影响形成所谓的正反馈现象, 该条路径走过上的蚂蚁越多, 信息素浓度就越高, 后面的蚂蚁选择该路径的可能性就越大。蚂蚁和蚂蚁之间能够通过这种信息素的交流, 找到一条从蚁巢到达食物的最短路径。使用蚁群算法解决TSP问题 (旅行商问题) , 这也是大家对蚁群算法应用研究得最多的问题。蚁群算法解决TSP问题其本质就是在给定的路线图中求出一条最优路径.前人基于蚁群算法的原理给出很多解决TSP问题的蚁群算法的实现, 然而, 这些算法基本上都是基于单CPU串行执行的, 在问题的求解空间逐渐增加时, 单CPU的串行执行速度往往无法满足人们的需求.在本文中, 笔者拟提出一种基于MPI (MessagePassingInterface (消息传递接口) ) 的蚁群并行算法, 根据蚁群算法的原理, 充分利用蚁群算法内在的并行性, 用以求解TSP问题中的最优路径, 通过基于MPI的蚁群并行算法有效地提高蚁群算法搜索最短路径的质量, 并缩短算法的运行时间。

二、并行蚁群算法

关于并行蚁群算法文献中提出PAPI算法, 该算法中为了减少处理器之间通信次数, 从而增加处理器用于计算的事件, 采取了让蚁群在运行固定次数之后才进行信息素的交流办法, 得到了比较好的加速比。文献中使用了一种最简单的并行蚁群算法, 各蚁群在运算时候没有信息交流, 这样各个蚁群之间是独立进行的, 并且实现了MMAS蚁群算法, 从算法结果上来看, 该方法体现了一定的效率。文献[7中对ACS做了并行实现, 使用的是数据并行的方法, 把一个蚁群中的所有蚂蚁平分为q个子蚁群, 然后使用q个处理器来并行计算, 所有的子蚁群都有自己的数据结构, 使用的是相同的蚁群算法, 该算法使用了局部和全部的信息素更新方法, 在一定的迭代次数后利用蚁群搜索到的最好路径对信息素矩阵进行更新。

1. 并行蚁群基本思路

蚁群算法并行化的基本思路是把n只蚂蚁分为numprocs个蚁群, 每个蚁群分配1个处理机。每个子蚁群中的蚂蚁个数可以相等, 也可以不相等, 如果处理机性能相同, 一般令各子蚁群的蚂蚁个数相等。初始化完成后, 由每个蚁群分别进行解的搜索, 根据并行策略进行蚁群之间的通信, 每个蚁群根据从其它蚁群获取的有关信息, 对本蚁群的状态进行修改。当达到算法的终止条件时, 由其中1个处理机收集各蚁群的最优解, 并输出所找到的全局最优解。

2. 并行蚁群算法描述

BEGIN

系统初始化;

1) 初始化MPI库, 使用MPI_Comm_rank () 获取进程号myid, MPI_Comm_size () 获取参与计算的进程数numprocs;

2) 蚂蚁总的数量初始化为n, 蚁群的迭代次数为D;

3) 设置蚁群算法的基本参数;

4) 各个蚁群进程中设置每只蚂蚁的初始位置;

5) 初始化最优路径长度;

WHILE (蚁群迭代次数

1) FOR (i=myid*n/numprocs;i< (myid+1) *m/numprocs;i++)

2) 搜索禁忌表初始化;

3) 搜索禁忌表中没有的节点;

(1) 根据概率来选择节点;

(2) 蚂蚁移动到选择的节点, 然后在搜索禁忌表中增加该节点;

(3) 利用局部信息素更新方法来更新路径上的信息素;

4) 蚂蚁随机分配到一个起始节点;

5) 利用局部信息素更新方法, 对蚂蚁所走过的各条路径上的信息素作局部调整;END FOR

6) 查找在本次循环中蚁群搜索到的最优路径, 更新全局最优路径;

7) 利用全局信息素更新方法对最优路径上的信息素做更新;

8) 使用MPI_Barrier () 函数的路障机制对集合中的进程同步;

9) 使用MPI_Reduce () 函数的规约操作来收集局部进程中的最优路径信息;

10) 使用MPI_Bcast () 函数进行广播操作统一局部进程中的最优路径信息;

END WHILE

使用MPI_Reduce () 函数的规约操作来得到当前进程集合中的搜索到的最优路径;输出最短路径的城市顺序和长度;

END

三、算法实现

在并行蚁群算法中需要设定的参数主要有蚂蚁数量m, 全局挥发因子, 局部挥发因子ρ1、ρ2, 启发函数权重α、β.这里选用了n=70个节点的实例数据, 对影响算法的各个参数进行研究.并选取st70的TSP问题进行了实验.并行蚁群算法中蚂蚁的数量越多, 全局搜索能力就越强, 但是算法的计算量与m成正比, 蚂蚁数量越多计算量也就越大, 参数ρ1、ρ2分别代表全局更新规则和局部更新规则中信息挥发程度, α、β的值体现了信息路径和启发式搜索的相对受重视程度.在实验中, 我们分别选取了m=100、n=70、α=1、β=2、ρ1=ρ2=0.2, 得出了程序运行时间的实验数据如表1所示.从表1的实验数据可以看出, 基于MPI的并行蚁群算法有很好的加速比, 可以成比例地提高运行程序的速度。

从表1我们可以看到, 并行蚁群算法能显著加快收敛速度, 减少执行时间;3个实例的结果都得到了较为理想的加速比, 而且, 随着问题规模不断的扩大, 加速比逐渐提高。

但是也看到算法得到的结果与TSPLIB公布的最优解还有一定的差距, 并行蚁群算法的效率有待于进一步的提高, 以后的工作将要从并行的策略入手, 提出改进措施来解决蚁群容易陷入局部最优的问题。

摘要:蚁群算法是新兴的仿生进化算法, 具有并行计算、正反馈等特点, 与其它各种启发式算法相比该算法具有明显的优越性。该文将实现蚁群算法的并行化, 并用来求解TSP问题, 结果证明能显著提高蚁群算法的收敛速度。

关键词:蚁群算法,并行,TSP,MPI

参考文献

[1]Kennedy J, Eberhart R C.Swarm Intelligence.San Francisco, CA:Morgan Kaufmann Publishers, 2001.

基于MPI 篇7

随着油田数字化的发展,针对大量数据的处理和对实际地层的建模与油藏动态模拟的计算要求,建立一种高性能高扩展的PC集群系统是非常必要的。本文利用windows平台下mpich2建立多主机并行集群,并使用eclipse中parallel模块,提高eclipse油藏模拟的计算效率,满足计算需求提供了方法[1]。

1 PC集群的研究与实验条件

PC集群是通过高速交换网络连接的一组独立计算机的(节点)的集合体,(见图1)。利用分布式计算的技术,把巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终结果。目标是实现资源的集中调度,共享稀有资源和平衡负载,从而提高计算的效率[2]。

通过PC集群系统是由多台低配置计算机通过交换机使用网线并联而成,因此散热,传输速率等问题将考验这样一个集合的系统的准确性和计算效率。同时还要考虑通过网络连接集中管理这些物理上独立的服务器,保证其成为一个系统发挥最佳的运算效能。所以选择搭建平台软件商,就要考虑其是否在集群的计算过程中可靠和拥有完整解决方案。MPI是为开发基于消息传递模型的并行程序而制定的工业标准,其目的是为了提高并行程序的可移植性和易用性,因此满足我们的需求。

由于独立计算机交换机节点间使用共享存储系统,随着计算机节点的增加,也就存在着网络访问的瓶颈问题,本文使用的节点数较少,因此不会遇到此种问题。

在本文使用的硬件设施是一个局域网中连接四台独立的计算机,计算机通过网线与交换机连接,利用四台Intel双核、2 G内存、160 G硬盘、WindowsXPsp3的操作系统的电脑进行测试[3]。

2 利用mpich2进行多主机联机建立

在eclipse的软件安装包中能找到mpich2-1.2-win-ia32.msi。如果想要多主机联机,还需要administrator的密码一致,最好目标程序的存放位置也一致。关闭系统防火墙和杀毒软件。安装MPI之后MPICH2会创建一个服务MPICH2Process manager,Argonne national lab ,提供服务的镜像mpich2root\\bin\smpd,这是mpich2的进程管理器

还需要向smpd服务设置了一个访问口令,完成注册和配置,(见图2),注册的目的是将刚才申请的账号密码输入到mpich2中,这是所有机器联机运算所必需的一个服务,密码也必需一致,这样mpich2才能在网络状态下访问每台主机,使用默认口令。然后是选择安装位置和使用用户,选择默认设置,所有用户(见图3)。

3 利用eclipse中parallel模块进行模拟分析

油藏模拟软件的应用并行,需要对模拟区域进行合理的分区,好的分区能够更好控制加载平衡和提高运行效率。如果所模拟地层的非均质性严重,合理地将小孔隙体积化也是必要的,因为小网格与周围的相比较小,导致收敛变差。

Eclipse的parallel选项设计的很易于操作,只需要加入相应的关键字并进行相应的设置便能获得较好的效果。

3.1 eclipse主文件配置

eclipse parallel需要和调用的电脑cpu相同数目的使用许可证才能进行。点击eclipse parallel,在弹出的窗口中(见图4),在notes中读入将使用的电脑的IP地址或者是计算机名称。

3.2 模型的运行

当我们使用parallel运行模型的时候,会在RUNSPEC关键字下面找到parallel关键字,这个关键字是记录运算使用的CPU的个数的(见图5)。

3.3 测试结果

评价多台电脑并行计算优劣的指标有精度、稳定性和并行的效率。通过使用多台计算机的并行计算会有一些问题。首先,多计算机并行计算所获得的结果符合工程精度,而不是机器计算精度;其次,相比较串联单线程的计算,并行计算的可量测性较差,这是由于当我们使用多线程计算的时候交换机,处理器,交换网络等系统的性能高低有时会降低运行效率。

3.4 计算精度和稳定性

从表中可以看出通过模拟计算结果可以看出,前后地层压力线基本重合(见图6)。累计产油和原始储量都符合相应的误差要求(见图7)。

3.5 并行效率

评价并行软件效率高低的主要指标是加速比、加速效率、增量加速比和增量加速效率,其中加速比包括实际加速比和理想加速比2个概念。当运行某一作业时,实际加速比是指使用多个CPU时的作业运行时间与只用1个CPU时的作业运行时间之比;理想加速比是指使用多个CPU的理想运行时间与只用1个CPU的运行时间之比。加速效率指实际加速比与理想加速比之比的百分数。由于数据的传输是通过交换机和网线,加速效率一般不会超过100%。

加速效率都在95%以上(见图8),较好地实现了加速运算的效果。

亦可以在mary中调用CUP的运行时间,也可以用来评测利用并行后与串行计算时的差别,Tcpu是衡量此项的重要性能参数(见图9)。

二者出现明显的差别,并行计算后明显降低,提高了计算的效率。

4 结论

(1) 基于mipch2的并行PC集群,能够较好地符合计算工作的稳定性和准确性,同时提高计算效率,加速效率都在95%以上,从性能和成本的角度上来讲都是在未来很有竞争力的。

(2) 使用eclipse parallel建立并行计算,能够实现多网格油藏模拟计算是可行的。

(3) 本文使用较少的计算机实现了多计算机的并行计算,有效地提高了计算的效率,缩短了计算时间,为多节点大型油田模拟计算提供了基础。

参考文献

[1]张建文,徐琼,王强,等.基于MPI环境的并行程序设计.东华理工学院学报,2007;(01):81—84

[2]郑强,牛津庐,杨新平,等.VIP并行油藏数值模拟软件在油田开发中的应用.新疆石油地质,2001;(06):520—523

基于MPI 篇8

1 研究对象与研究方法

1.1 研究对象

继续以某系统公立医院随机抽取、复查确定的71个临床医学重点学科作为研究对象(决策单元),在进行现况分析、DEA分析基础上[1,2],对临床医学重点学科效率进行整体及不同组别(分研究所组、专科中心组)2003年~2007年度的效率变化进行纵向分析。

1.2 研究方法

MPI被用来测度各个决策单位跨时期效率的变动情况,在国外卫生领域的绩效评价中应用较为广泛;国内主要应用于城市全要素生产率的动态变化、区域创新绩效动态变化等研究,卫生领域的应用未见报道[3,4,5,6,7,8]。Malmquist生产率指数的数学表述形式为:

其中,表示以t期的样本所构造的生产前沿面为基准对医院k在t期的投入产出进行DEA生产效率评估的结果,表示以t+1期的样本所构造的生产前沿面为基准对医院k在t+1期的投入产出进行DEA生产效率评估的结果,表示以t期的样本所构造的生产前沿面为基准对医院在期的投入产出进行DEA生产效率评估的结果,而表示以t+1期的样本所构造的生产前沿面为基准对医院k在t期的投入产出进行DEA生产效率评估的结果。

若,表示受评估的决策单元的生产效率有所提高;若则表示受评估的决策单位的生产率下降。

对于MPI指标,可以作如下分解:

其中为医院k从t期(年)到t+1期(年)的纯技术效率变化率,

为医院k从t期(年)到t+1期(年)的要素组合效率变化率,为医院k从t期(年)到t+1期(年)的规模效率变化率,为医院k从t期(年)到t+1期(年)的技术水平变化率[9]。MPI值>1,表明后一年度较前一年度效率改善;MPI值<1,表明后一年度较前一年度效率恶化;MPI值=1,效率无变化。利用SAS9.1.3软件进行分析处理。

2 结果与分析

2.1 2003年~2004年度效率变动

2.1.1 总体情况

MPI均值1.1938,变化范围0.1236~9.3947。其中效率提高的47所,恶化的24所。纯技术效率出现恶化(见表1)。

2.1.2 分类比较

研究所组M P I均值1.0470,变化范围0.6090~1.5105;中心组MPI均值1.2839,变化范围0.1236~9.3947。比较显示,本年度的中心组的效率增长高于研究所组,主要体现在中心组的技术水平变化率上;但其纯技术变化率则低于研究所组。

2.1.3 综合分析

临床医学重点学科整体效率提高,但个体间的进步差距明显;其中起主要推动作用的是技术水平、要素组合效率、规模效率变化率,纯技术效率出现恶化。研究所组、中心组效率均提高;中心组的效率改善程度高于研究所组,但中心组的个体间差异较大,其平均纯技术效率变化率低(表2)。

2.2 2004年~2005年度效率变动

2.2.1 总体情况

MPI均值1.0155,变化范围0.2164~2.3274。其中效率提高的40所,效率恶化的31所。要素组合效率恶化。

2.2.2 分类比较

研究所组M P I均值1.0807,变化范围0.5260~2.3274;其它指标MPI均值:技术水平变化率1.0080,纯技术变化率1.0537,要素组合效率变化率1.0123,规模效率变化率0.9985。中心组MPI均值0.9754,变化范围0.2164~1.9430;其它指标MPI均值:技术水平变化率1.0060,纯技术变化率1.0099,要素组合效率变化率0.9504,规模效率变化率1.0095。

2.2.3 综合分析

临床医学重点学科整体效率提高,主要问题是要素组合效率恶化。研究所组的效率增长,而中心组效率恶化的主要原因是要素组合效率。

2.3 2005年~2006年度效率变动

2.3.1 总体情况

MPI均值0.9265,变化范围0.2435~1.7567。其中效率提高的23所,效率恶化的48所。技术水平变化率降低。

2.3.2 分类比较

研究所组M P I均值0.9540,变化范围0.6549~1.5505;其它指标MPI均值:技术水平变化率0.9544,纯技术变化率1.0069,要素组合效率变化率0.9988,规模效率变化率0.9945。中心组的MPI均值0.9096,变化范围0.2435~1.7567;其它指标MPI均值:技术水平变化率0.8998,纯技术变化率0.9957,要素组合效率变化率1.0085,规模效率变化率1.0109。

2.3.3 综合分析

临床医学重点学科整体效率降低,效率恶化的专科中心数量明显增加。研究所组与中心组的效率均降低,影响因素来自多个方面,而共同因素则是技术水平恶化。

2.4 2006年~2007年度效率变动

2.4.1 总体情况.

MPI均值10379,变化范围0.5462~1.8692。其中效率提高的35所,效率恶化的36所。要素组合效率、规模效率均恶化。

2.4.2 分类比较

研究所组M P I均值1.0144,变化范围0.7083~1.7144;其它指标MPI均值:技术水平变化率1.0011,纯技术变化率1.0229,要素组合效率变化率1.0012,规模效率变化率1.0100。中心组MPI均值1.0524,变化范围0.5462~1.8692;其它指标MPI均值:技术水平变化率1.0540,纯技术变化率1.0544,要素组合效率变化率0.9848,规模效率变化率0.9847。

2.4.3 综合分析

临床医学重点学科整体效率提高,其贡献主要来自技术水平效率和纯技术效率改善,而规模效率、要素组合效率恶化。研究所组与中心组的效率均提高,中心组MPI增长快于研究所组;研究所组的各项指标均改善,而中心组的要素组合效率、规模效率恶化。

整体分析来看(表3),最后一个年度间效率恶化的个体数占总数的50.70%,后两个年度间较前两个年度间的效率恶化个体数明显增加;从最后一个年度间效率变化情况向前追溯,连续4个年度效率均下降的有4个(研究所组2个,中心组2个);连续3个年度间效率下降的有3个(研究所组1个,中心组2个);连续2个年度下降的有16个(研究所组8个,中心组8个)。研究所组、中心组后两个年度间较前两个年度间的效率恶化个体数均增加,研究所组增加明显。

3 讨论与建议

3.1 效率恶化的数量增多,个体恶化程度减轻

动态分析显示:整体评价除2005~2006年度效率恶化外,其余均提高;但效率恶化个体的数量较多,最后一个年度间效率恶化的个体数占总数的50.70%,后两个年度间效率恶化的个体数量明显增加。但个体评价MPI值的最低值有所提高,最高值有所降低;尤其是中心组MPI值的最低值明显提高。MPI均值范围有集中的趋势,说明其个体技术效率恶化的程度有所减轻,大幅度提升技术效率者有所减少。总体来看,临床医学专科中心个体效率恶化的形势仍很严重,中心组个体效率恶化程度减轻是整体评价效率改善的重要因素;影响整体效率改善的重点是要素组合效率、规模效率变化率。

3.2 中心组效率恶化明显,需要给予重点管理

如图1所示,总体MPI主要受中心组M P I的影响。研究所组总体除2005~2006年度间效率恶化外,其它均增长;MPI值变化范围起点较高,比较稳定,效率恶化者的恶化程度较中心组低。中心组则在连续两个年度间(2004-2005,2005-2006)总体呈现效率恶化,2005~2006年度效率恶化的个体数达70.45%,其MPI值变化范围较大,但最低值呈逐年提高态势;其效率恶化的主要影响因素要素组合效率、规模效率恶化。因此,中心组是临床医学重点学科提升效率的重点管理部位。在重视整体提高技术效率的基础上,如何有效促进中心组效率的提升,是临床医学重点学科发展的工作重点。

3.3 突出效率恶化的重点,完善个体建设措施

在重视效率恶化问题、明确重点管理要素的基础上,特别要针对持续效率恶化的个体开展有效管理,通过迅速改善其技术效率来促动整体效率的提升。评价显示,效率持续恶化的个体数量较多。最后一个年度间效率恶化的个体数共36个。至少连续2个年度效率恶化的个体有16个,达总数44.44%。其中研究所组8个,占自身总数的29.63%;中心组8个,占自身总数的18.18%。作为这些专科中心的所在医院,应对这些个体进行具体的分析和研究,系统查找影响效率改善的各项要素,围绕减小规模、合理配置要素,以及改进资源利用方式等[10],制定全面有效的措施,进行系统整改。

3.4 把握学科发展的规律,丰富管理手段方法

适应医学重点学科发展的要求,积极探讨重点学科发展的内在规律,丰富管理理论和管理方法,是推动临床医学重点学科持续发展的必然要求。通过运用MPI研究专科中心年度间技术效率变化情况,发现了连续几年动态效率持续恶化的个体。长期的效率恶化对于这些个体乃至重点学科整体的发展产生了不利影响。如何及时、尽早发现效率恶化迹象,并采取有效的管理措施予以改善,将对临床医学重点学科建设产生积极的影响。因此,对临床医学重点学科应开展横向、纵向的效率监测评价,建立数据库及动态管理系统,定期进行效率评估,及时发现问题,及时制定有针对性的管理对策。

参考文献

[1]孙金海,张鹭鹭,孟威宏,等.71所医院临床医学重点学科现状调查分析[J].中国医院,2010,14(3):7-9.

[2]范群铭,孙庆文,郭强,等.基于DEA的71所医院临床医学重点学科效率分析[J].中国医院,2010,14(3):10-13.

[3]金相郁.中国城市全要素生产率研究:1990~2003[J].上海经济研究,2006,(7):14-23.

[4]袁鹏,陈圻,胡荣.我国区域创新绩效动态变化的Malmquist指数分析[J].科学学与科学技术管理,2007,44-49.

[5]Lyroudi K,Glaveli N,Koulakiotis A,Angelidis D.The productive performance of public hospital clinics in Greece:a case study[J].Health Serv Manage Res,2006,19(2):67-72.

[6]Staat M.The efficiency of treatment strategies of general practitioners.A Malmquist index approach[J].Eur J Health Econ,2003,4(3):232-238.

[7]Sommersguter-Reichmann M.The impact of the Austrian hospital financing reform on hospital productivity:empirical evidence on efficiency and technology changes using a non-parametric input-based Malmquist approach[J].Health Care Manag Sci,2000,3(4):309-321.

[8]Linna M.Measuring hospital cost efficiency with panel data models[J].Health Econ,1998,7(5):415-427.

[9]孙巍.基于非参数投入前沿面的Malmquist生产率指数研究[J].中国管理科学,2000(1):22-26.

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【基于MPI】相关文章:

基于06-11

基于05-20

基于架构06-09

三基于06-16

基于对象07-15

基于风险07-21

基于文本08-12

基于过程08-21

基于特征08-31

基于对象范文05-16

上一篇:随机过程下一篇:能值理论