APP下载

并行环境MPI的搭建与应用

2016-03-04曾袁虎

电脑知识与技术 2015年36期

曾袁虎

摘要:MPI(Message Passing Interface)是设计消息传递并行程序的重要标准,它作为并行环境,广泛应用于计算机系统,由于其具有良好的移植性、功能性、安全性与高效性,因此,其搭建与应用得到了普遍的关注。PC集群在构建中充分地将计算资源利用起来,形成了并行计算环境。MPI并行程序设计平台在PC集群构建中运用最为广泛,同时,MPI实现的主要版本为MPICH。在此情况下,该文探讨了并行环境MPI的搭建与应用,旨在进一步改进MPI,使其作用得到了充分的发挥。

关键词:PC集群;MPI;并行

中图分类号:TP338 文献标识码:A 文章编号:1009-3044(2015)36-0050-02

随着时代步入信息化,人们的需求也在逐步提高,为了满足人们对信息处理的需求,信息化技术也在飞速的发展。我国各级政府部门及一些资源灾害预防部门都对计算机有着非常高的要求,其他生活中的各大中小型企业和教育机构等对计算机性能的要求也不断的加大。因此,高性能的计算机的需求量不断的加大,对其的研发也备受国内外技术人员的重视,高性能的计算技术在各个领域都取得了非常显著的成效。在先进技术的支持下,高性能计算机技术快速发展,其在科学研究、实践应用等各个方面均扮演着重要的角色,当前,高性能计算机的发展主要为集群与分布式,为了满足其发展的需求,并有效解决不同计算机间数据交换的问题,消息传递库的性能得到了广泛的关注,在此背景下,通过不断的研究与实践,提出了MPI,本文介绍了MPI的含义及特点,并重点阐述了并行环境MPI的搭建与应用,旨在为高性能计算机的应用奠定坚实的基础。

1 MPI的概况

1.1 MPI的含义及特点

消息传递简称便是MPI,它作为消息传递函数库的标准,其借助独立语言以此实现了对接口库的定义。根据MPI的含义可知,它属于库,而非语言,同时它是标准,而非具体实现,再者,它是信息传递编程模型。MPI的通信模式有四种,分别为:标准通信模式,它是最为基本的方式之一,此外,还包括缓存通信模拟、同步通信模式及就绪通信模式,不同的通信模式满足了不同通信的需求。在不同通信方式的作用下,为用户编写并行程序提供了可靠的保障,由于四者拥有相似的功能,为了有效区分,需要借助以下依据,具体内容为:其一,在发送数据过程中是否需要缓存,其二在执行发送操作过程中是否需要接受调用执行,其三,在正确返回时发送调用的时限要求,其四,在正确返回后是否表示发送已经完成、是否需要覆盖缓冲区、数据是否达到接收缓冲区。通常情况下,程序人员仅利用标准通信模式便可以有效地编程,但如果标准通信模式未能满足需求,则需借助其他三种模式,以此更好地理解程序与通信,在此基础上,才能够实现MPI的优化。

MPI作为目前运用最为广泛的并行编程设计平台,其具有强大的功能,在移植性上也非常的好,运行效率高等,并且它开发了好多免费且实用高效的版本,其中最为重要的就是MPI在并行集群技术中的高效实用性。MPI的移植性是指它可以转移于不同型号的并行机或者网络环境,此时仅要求并行机或网络环境均支持MPI平台;MPI的功能性是指它满足了点到点及集合的通信,前者发送是借助阻塞式实现的,其接收分为两种,分别为阻塞与非阻塞式;后者通信方式具有丰富性与多样性;MPI的安全性是指它提出了通信子,增强了通信环境的安全性,提高了通信接口的可靠性,防止了通信空间问题的出现;MPI的高效性是指它采用进程管理,虽然MPI不断的改进,但其仍未实现动态进程的查询,但其在任务分配过程中利用了笛卡尔拓扑与图拓扑,在此基础上,优化了资源配置,充分发挥了硬件的特性,提高了设计水平,在简化的基础上,保证了效率。

1.2 集群的含义及优点

集群是指在同一个工作组中协同工作的计算机,它最重要的概念就是充分地将技术资源利用起来,其能够将原先一个处于超载的系统的工作负荷转移给集群中其他的系统上,以此来减轻系统的负担。它所具有的计算处理能力可以与专业计算机相媲美,并且其在性价比上是比专用计算机要高的。在集群中一个计算单位就是一个节点。

集群系统有如下优点:1)高可扩展性:在集群系统中,CPU的个数增加是直接影响到其系统的性能的,所呈现的变化都是以线性来演变的。2)高可用性:在集群系统中,如果某一节点失去效应,那么是不会对其任务产生影响的,它会将其传递给其他的系统节点,这样能够有效地防止单点失效而带来的其他问题。3)高性能:在负载平衡的集群系统中,可以同时的接入很多的用户。

2 并行环境MPI的搭建与应用

2.1 MP搭建

并行环境MPI的构成主要包括以下几部分,其一,点对点通信接口,它作为MPI的基础,其阻塞与非阻塞共有10个函数,其中发送函数有8个、接收函数有2个,并且存在诸多的辅助函数,以此实现了消息的打包、缓冲区的获取与释放等;其二,集体通信接口,此时的集体为进程组,在用户指定的基础上,通信体对其展开管理,对于同一个进程而言,其通信体及通信上下文均存在差异,而通信上下文是确保机体通信是否完成的重要保障,对于此部分而言,其函数主要有广播、收集、散布、压缩机扫描等;其三,进程组、通信管理及通信上下文接口,此部分的函数主要有创建、操作及释放等;其四,虚拟拓扑接口,此部分式用户借助虚拟技术集合各进程实现的,如:不同维度的网格及网结构等,此时并行处理采用区域分裂方式,以此保证了处理的便捷性,因此,此接口为各拓扑结构创建函数;其五,MPI环境接口,其函数主要有开始、结束、错误处理及时间统计等。

2.2 MPI应用

MPI实现的版本相对较多,主要有MPICH、IBM与CHMP等,其中MPICH具有常见性与稳定性。MPI与MPICH具有同步性,当前者出现新版本后,后者也会随之出现相应实现版本。对于MPI而言,其作为标准,仅仅具有提供各函数的作用,其不能具体实现,因此,在MPI的基础上,MPICH使各个函数具体实现,对于MPICH而言,由于其操作系统存在差异,在实际运行过程中,为了适应不同的系统,MPICH版本也有所不同。同时,为了保证MPI消息传递,MPICH采用了套接字通信,在创建进程过程中,均与其他进程实现了套接字连接,在此情况下,如果消息传递,程序将结合消息目的的进程号,以此获得相应的套接字,进而目的进程将获得所发送的消息,并且将对信息进行保存。

对于MPICH而言,其实现主要是由MPI-Init实现、MPI-Send实现与MPI-Recv实现等构成的。在并行环境MPI中MPI-Init函数负责初始化,唯有实现环境初始化,其他MPI函数才能够得到有效的调用,MPI-Send属于标准消息传递函数,MPI-Recv属于指定进程接受消息函数。MPICH实现过程中,各进程间的通信需要有效协调,以此避免数据传输问题的出现,此时主要是利用紧迫协议与约定协议实现的,同时也借助通信子概念,以此保证了对各种相关信息的记录。对于MPICH来说,其定义了并行编程常用的例程,其中各例程均拥有各自的参数,此时编程人员可对例程进行直接的运用,从而避免的工作的重复性,提高了编程的灵活性与高效性。但MPICH的实现方法过于依赖多线程与套接字,其中的MPI进程均拥有超过两个线程,其中一个用于接收与发送信息,另一个用于控制信息的接收与发送,并且在系统支持各异的情况下,还需要构建第三个线程,再者,MPICH进程通信借助套接字实现,此时即便两个进程处于同一机器,仍需利用套接字连接,此时才可以实现信息的相互发送,在此情况下,MPICH程序占用了大量的系统资源,为了解决此问题,应对同一机器的运行进程信息进行统一存放,并采用共享内存的方式传递信息,同时对于不同机器的进程也应采用统一管理,以此保证管理的效率。

对于并行程序设计而言,其关键环节为消息传递的并行程序设计,而重中之重的问题为分解与通信,并行环境MPI有效解决通信问题,此时仅需要考虑分解问题即可,通常情况下,其采用域分解与函数分解两种方式,二者的模式分别为SPMD编程与MPMD编程,前者是指分解数据定义域,使其转化为不同的子域,此后对进程进行限制,其仅可计算自身的子定义域,最终加入通信语句;后者是指分解问题使其转化为不同的子任务,此后设置主进程以此支配其他进程,并且保证各子任务的完成。通过两种模式比较可知,前者具有便捷性与直观性,因此,MPI可以选择此模式实现。

同时,根据相关文献报道可知,并行环境MPI的程序设计模式可以划分为对等模式与主从模式,在主从模式方面,其应用程序的构成有主进程与从进程,根据调查可知,MPI程序选取的设计模式可选择上述两种模式中一种,也可选择两种模式组合的方法。

3 结论

综上所述,在MPI并行环境构建中,基于PC集群来构建是非常简易的,并且其在性能上有着非常好的效果,在数据计算上也能够担任重则。但是这需要与网络联合起来传递消息,但是在计算量不大的情况下,会对通信开销有着较大的影响,这就使其还没有单机好用。

参考文献:

[1] 希润高娃. 基于PC集群的MPI并行环境的搭建[J].网络安全技术与应用,2012(4).

[2] 依再提古丽·阿克甫. MPI并行编程及集群构建[J].内江科技,2012(2).

[3] 刘永军. 基于MPI性能优化算法研究[J].科技信息,2012(8).

[4] 汪洋,刘杰,龚春叶. 基于MPI的随机数并行检验算法[J].电脑知识与技术,2012(8).

[5] 曲兆伟,余文华. 基于MPI的并行PC集群搭建的实现[J].中国传媒大学学报:自然科学版,2007(2).

[6] 徐巍,李玉榕. MPICH在PC集群系统中的应用[J]. 福建工程学院学报,2006(4).

[7] 张建文,徐琼,王强. 基于MPI环境的并行程序设计[J].东华理工学院学报,2007(1).

[8] 马晶燕,于双元. 基于MPICH的MPI并行环境分析[J]. 科技咨询,2006(4).