# 力学可用的MPI并行计算编程及其运行平台的组建

发布时间:2012-08-18 18:10:55   来源:文档文库   
字号:

可用于力学的MPI并行计算编程及运行平台的组建研究

四川大学物理科学与技术学院 李久楷*

四川大学建筑与环境学院 宁交贤**

摘要:探索了一种基于Windows系统平台的、用于力学的实验系统和实现高性能力学计算MPI并行环境.描述了机群体系结构及其构建的关键技术.分析了MPI并行编程的优势和挑战.采用MPI最新版本MPICH2-1.0.6作为并行计算的支撑环境,通过编制的三个具有代表性的MPI并行计算程序,并在以100Mbps交换式局域网作为互连的机群上和具有双核处理器的PC机上分别进行了并行效率的实际测试,得到了预期结果,并做了相应分析.

关键词: 并行计算 MPI;核处理器PC;网络技术;

1 引言

随着计算机的广泛应用,处理问题的规模也越来越大,从科学计算、信息数据处理、图像处理、知识处理

到智能处理.特别是一大批有巨大挑战意义的科学和工程计算问题,实验力学中的力学高速数据采集、大容量力学动态数据存储和实时处理、流场计算、复杂结构的有限元计算、气象预报、油勘探和核物理等方面的计算问题,还有一些重大和国防的工程技术应用系统,如医学三维图像生成、雷达、声纳、航空流场试验分析系统以及视频传输、压缩编码等,对计算机的运算速度、处理精度、快速时效性等提出了越来越高的要求.

在计算机的发展史中提高计算机处理速度的途径有两个,一是改进元器件的工艺以提高其性能,二是开发系统的并行性.但试验数据表明,无论如何发展技术.单个处理器的速度由于受到材料的物理限制,突破单机极限速度的唯一方法就是进一步挖掘计算机运行中的并行处理能力.因此,使用多个微处理器组成一种具有并行结构的高性能计算机,是满足科学计算和工程问题中高性能数据计算处理要求的有效途径.

近年来,由于PC机运算速度的大幅度提高、硬件价格的降低、网络技术的发展和成熟、计算机操作系统软件功能的不断加强和完善、以及单机多核CPUPC机的出现,还有MPI并行计算编程开发软件技术的发展,使并行计算这一问题的有效解决,提供了新的解决思路和方案.

目前许多单位都建立了主要用于信息传输和业务服务的局域网甚至校园网或园区网一类的网络系统.但人们的习惯思路,对建立具有强大功能的并行计算应用系统平台,仍然停留于过去的看法,即认为需要巨大的经费支持和具有复杂的技术解决能力,而没有看到现已具有的条件.

* 李久楷 生物医学物理研究方向硕士研究生

** 宁交贤 教授 实验力学及生物医学工程博士生导师

本文依托已具有的网络条件和单机多核处理器PC,试图探索建立起基于MPI技术支撑的并行计算和应用系统平台的可行性、需要解决的编程环境和技术实践、可能遇到的问题和注意事项等基本问题,其依托的网络是我校物理科学及技术学院语音教学实验室的具有40PC机组成的局域网,试验中对原有语音功能的硬软件和网络联结没有做任何变动,而所用的多核机则为二台分别具有Intel酷睿双核及Intel Pentium D双核处理器、内存分别为1GB512MBPC,结果得到了肯定的结论.

选用已存的网络条件实现并行计算应用系统平台,能大大推进和普及运用并行计算技术解决实际问题,从而推动学术和技术工作,又能充分挖掘已建计算机网络的应用潜力,同样采用单机的多核PC机或服务器作为工程技术应用系统的硬件平台,并用并行计算完成一些复杂的计算、传输和存储等的数据处理问题,可以大大简化重大技术问题的解决和节省投资,因此,这具有十分重大的技术和经济意义.

2 MPI在并行计算系统中的应用

相对于串行计算而言的,将一个应用问题分解为多个子任务分配给不同的处理器,每个处理器相互协同、并行地执行子任务,从而达到加快求解速度或是提高求解问题规模的目的.为了开展并行计算,必须具备以下条件

1)、并行计算机,并需包含多个处理器,且相互连接,相互协作.

2)、应用问题一般具有并行度,可以分解为多个可并行执行的子任务.将一个应用问题分解为多个子任务的过程称为并行算法.

3)、在并行编程环境,实现并行算法编写程序,从而实现并行求解的目的.

衡量并行系统性能有两个主要的技术指标,即:并行加速比和并行效率.并行加速比串行耗时除以该问题的并行求解的耗时. 并行效率,即加速比除以并行求解时处理器的数目.

机群的体系结构属于分布存储,,每个处理器有私有的存储空间,不能直接访问其它处理器的私有存储空间,不同要通过系统进行通信相互协作和数据交换.其体系结构如图1所示

2.1 MPI的优势

MPI为高性能并行计算提供了一个方便、灵活的环境,也为不同的平台消息传递提供了有效支持消息传递的并行编程主要是通过调用消息传递库MPI函数来进行的.它实现了处理机间的数据交换功能,并提供并行任务之间的同步和收发数据的接口.MPI2.0MPI1.0的基础上扩展了一些新的特性:如动态进程管理,远程存储访问,并行I/O,对面向对象C++语言的支持等.本次试验选用的是美国Argonne 国家实验室和MSU开发的、支持MPI2.0标准的MPICH2-1.0.6作为并行计算开发环境.具有良好的可移植性和易用性,可以在分布式存储及共享存储的可缩放并行机和机群并行系统上执行.其主要特点和优势如下:

(1)能有效地管理消息缓存区.

(2)具有完备的异步通信功能,通信可完全与计算重叠进行.

(3)能在大规模并行机MPP和机群上有效运行,是完全可移植的平台.

2.2 MPI并行程序的挑战性:

在现有较多发表的论文中提到:依托MPI环境,对已有大量的串行计算程序,可以很容易改写为并行计算程序并获得计算结果,本项研究探索的实践证明并非如此简单,而是有着很大的挑战性.另外,这也说明,现有MPI支撑环境和技术,尚有许多不完善或急需进一步充实和发展的内容.初步实践体会,其挑战性主要有以下一些方面:

(1)程序的设计与编写:并行程序支持多个操作同时进行,所以能显著提高程序的性能,但由于并行软件各元素之间存在着复杂的交互,也使得程序行为变的更加复杂,因此需要更加深入的思考才正确驾驭,对这些同时发生的操作以及它们之间的交互必须进行很好的管理.

(2)调试:除具有串行程序调试所具有的困难之外,还有一些新的较大的困难.首先,并行软件各元素之间存在着复杂的交互,这可能会引入新的BUG,这些BUG难以发现,定位,消除这些BUG非常耗时而且十分乏味,程序员被迫需要长时间跟踪软件元素的交互行为来确定这个逻辑错误的根源.其次,现在还没有有效的调试工具可利用,只能依靠程序员的个人经验进行试探性的调试,具有相当难度。

(3)性能和移植:并行系统的性能对程序的微小变化非常敏感.并行程序中还存在潜在的问题,例如负载平衡、数据的局部性、输入输出问题.所有这些问题都使得并行程序的开发和调试变得非常复杂,而且经常与直觉相悖.

3 并行计算平台的搭建探索

3.1 MPI并行程序代码开发调试平台:

·安装MPICH2VC++6.0支撑系统.

·建立控制台工程.

·进行工程设置.

·编写代码,编译,调试,构建应用程序.

3.2 网络运行平台

·在需要参与MPI计算每台PC机上安装MPICH2.

·对参与运行MPI应用程序主机(可以是一台或多台)进行相应的配置.

·发起运行MPI程序.

3.3、多核CPU单机运行平台

·安装MPICH2.

·进行相应的配置.

·运行MPI程序.

4 几个典型计算例的并行程序编码和结果的初析

为了测试采用的并行计算应用系统的性能,编制了在较多领域有应用意义、并在并行计算结果性能和效果有较大差异的三个有代表性的并行程序,做了相应的测试和比较.为了简要地说明MPI的用法,以下仅列出了一个程序的伪代码作为示例。

4.1 网络系统下的试验

4.1.1 Jacobi迭代的并行计算:

Jacobi迭代:在求解线性代数方程组中有重要的应用.过程为: 根进程对大的方程组分解成几部分→根进程分解结果发送到所有计算节点→各节点进迭代计算→各节点把计算的结果发送给根进程→得到最后结果.应注意迭代的同步问题.C语言伪代码如下:

main(int argc,char *argv[])

{

//初始化

MPI_Init(&argc,&argv);

//myid 代表了起程号

MPI_Comm_rank(MPI_COMM_WORLD,&myid);

MPI_Comm_size(MPI_COMM_WORLD,&size);

//对数组赋初值边界赋初值

//迭代计计算

while(k< DDCS)

{

//各进程之间通信

//每个进程都需要从相邻的进程得到数据块同时,每一个进程也都需要

//向相邻的进程提供数据块

MPI_Send(buf, count, datatype, dest, tag, comm)//发送数据

MPI_Recv(buf, count, datatype,source, tag, comm, *status)//接收数据

//进行一次迭代计计算

k++;

}

//程序结束

MPI_Finalize();

}

测试的结果如图2所示:

结果分析:该算法并行计算的计算量大,通信量也比较大,各节点之间计算要求同步,而且需要通信传输数据 .当节点量比较少时,通信量较少即计算/通信比大,加速比也快速接近理想值;但随着节点数量增多,通信量加大,加速比增长变慢,并行效率逐渐降低.

4.1.2 Mandelbrot 集的并行计算

Mandelbrot 集是复数平面中的点集, 当对一个函数迭代计算时, 这些点将处于准稳定状态( 将增加或减小, 但不会超过某一限度),通常该函数是:.式中是复数(其中)的第次迭代,是第k次迭代,是确定该点在复数平面中位置的复数值.的初值为.迭代将一直进行下去,直至的幅值大于(这表明最终将变为无穷大)或是迭代次数已达到某种任意规定的限度.记录每个点的迭代次数.

计算过程为: 根进程对复数平面中的点集划分成几部分→各节点进迭代计算→各节点把计算的结果发送给根进程→得到最后结果.

测试结果如图3所示

结果分析:该算法并行计算的计算量大而通信量很小,各节点具有很少的相关性是相对独立的 .此类问题具有理想的并行性,编程容易实现,加速比也接近理想值,并行效率接近于1.

4.1.3、二维快速傅里叶变换(FFT)的并行计算

二维傅里叶变换,就是进行两次一维FFT计算,即首先进行行变换,然后再对行变换的结果进行列变换.并行实现快速傅里叶变换算法的思路就是把行变换和列变换的计算任务分配到各个节点并行完成.并行傅里叶变换的过程为:各节点进行行变换→各节点把行变换的结果发送给根进程→根进程对行变换结果进行转置运算→根进程把转置结果发送到所有计算节点→各计算节点再进行行变换→各节点把变换结果发送到根进程→根进程进行转置→得到最后结果.

测试结果如图4所示

结果分析:各节点之间计算要求同步而需要大量的通信传输数据,该算法并行计算的计算通信比小, .由于在局域网上通信数据传输相对于计算来说是很耗时的,这就造成了负的效应即加速比小于1的情况,并行效率很低.很明显这类问题一般不适合在PC机群络下进行并行计算.

4.2 双核PC上的试验比较:

PC1配置:Intel Pentium D CPU(双核),512M内存,操作系统为Win XP

PC2配置:具有Intel 酷睿双核处理器、内存为1GB内存,操作系统为Win Server 2003

测试结果及比较如1所示

结果分析:MPI并行程序在双核处理器PC机上都表现出了大于1的加速比,显著地提高了性能,充分利用了计算机资源.加速比的不同与程序结构和PC体系结构有关.可以得到这样的结论:MPI并行程序在多核处理器(比如四核,八核甚至更多)应该具有更高的加速比.

5 结语

由本项研究可以得出以下重要认识:

(1)、依托大量存在的网络及单机多核处理器PC,组建MPI并行计算平台是可行的、有效的和十分经济的.

(2)依托MPI编程环境组建的并行计算平台,对解决科学计算和工程应用系统,有重要的学术价值和工程应用意义.

(3)MPI并行计算编程,有利于充分发掘多核处理器PC机的计算潜力和效力,其最有效的算例证明,可接近于处理器个数的倍数,即串行计算编程时,它仅利用了其多核单机的1/(处理器个数)的效力.另外,多核单机的通信传输也比网络环境更有效,因此对于组建工程应用系统作数据处理更紧凑有利.

(4)、在现有一般网络情况下,节点之间的通信耗时,是影响并行计算加速比和并行效率的主要原因,应尽量加大计算耗时与通信耗时的比值,一般认为该比值小于1时的,算法就不适于并行计算.但应注意到,通信耗时与计算机存储带宽、I/O带宽、网路通信协议、体系结构和介质传输速度等都有关,这可通过诸如并行存储、宽带网络及新的网络协议等来改善和解决,因此,并行计算有其普适性,但这是进一步应研究的问题.

(5)并行程序的编写与串行程序相比较困难的多,实现应用问题的并行求解,编写高效的并行程序已成为当前并行计算广泛应用的最大障碍,这对MPI并行编程开发环境提出了进一步提高和完善的要求.为使并行计算系统长期有效的运行,对并行计算系统有效的管理也是很重要的,需通过更多实践总结来解决.

参考文献:

[1] 宁交贤.高速大容量不间断数据流并行计算机的研制及其应用展望[J].现代力学测试技术(第九届全

国实验力学学术会议论文集)华南理工大学出版社,1998.11.

[2]宁交贤 , , .一个新的高速大容量数据采集及实时存储处理系统的构想和实现[J].实验力学,1996,11(4):395

[3] Alfonsi,Muttoni L.Performnce evaluation of a Windows NT based PC cluster for high performnce computing[J].Joumal of Systems Architecture,2004,50:345

[4]张林波.并行计算导论[M].北京:清华大学出版社,20064

[5]莫则尧等.并行计算综论[M].北京:电子工业出版社,2005:31.

[6]Ahmad Faraj,Pitch Patarasuk,Xin Yu. A Study of Process Arrival Patterns for MPI Collective Operations[J].International Journal of Parallel Programming,2008,36(1):1

[7]彭敏.并行计算:多核时代的软件挑战[J].软件世界 2007,9:20.

[8]吕文龙, ,郭福强, .Beowulf型并行计算系统的管理软件研究[J]. 四川大学学报(自然科学版)2006.43(2):350

本文用到的图表

本文来源:https://www.2haoxitong.net/k/doc/3c79352ae2bd960590c67799.html

《# 力学可用的MPI并行计算编程及其运行平台的组建.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式