MPI并行计算在图像处理方面的应用

2017-01-28 11:25欣,王
科学中国人 2017年12期
关键词:图像处理消耗集群

李 欣,王 婷

西南科技大学理学院

MPI并行计算在图像处理方面的应用

李 欣,王 婷

西南科技大学理学院

随着科学技术的不断发展,人们在很多工程方面对计算机的运行速度提出两个更高的要求。图形处理广泛应用在神经网络计算和地形匹配等方面,其在运行过程中将产生大量的计算任务,这在一定程度上对计算机本身所具有的性能提出了更高的要求。近年来,微处理器本身的性能有了较大的提升,在局域网高速发展的状态,人们可以使用微机通过局域网进行连接,形成并行集群计算系统,有利于提高对图像的处理。基于此,本文就对MPI并行计算在图像处理方面的应用进行探讨。

MPI并行计算;图像处理;应用

前言

现阶段,MPI是一个较为常用并行计算环境,其是一种用于消息传递的接口标准,由MPI论坛最先推出,其制定的主要标准是提高并行程序的性能。MPI论坛是在1994年推出的MPI的首个版本,随着相关技术的发展,其也随之退出了多个版本,到现在为MPI最新的版本为6.2版本,成为当下业内所执行的并行计算标准。下面笔者就对MPI并行算法进行探讨。

一、MPI并行图像处理算法

(一)构建处理算法并行模型

算法并行模型的构建在其是使用过程当中是十分重要的。并行计算的主要目的是为了能够利用计算集群来缩短计算时间,从而提高计算效率。要想实现并行计算的算法主要是将众多的计算节点之间在数据上进行交换,因此并行计算也会在运行过程中掺入额外通信时间[1]。这种额外通信时间如果过大,那么将会在一定程度上使并行计算出现较为严重的运行效率下降的情况。当额外通信时间总体大于并行计算在运行过程中所节省的时间,没那么这种并行集群在运算速度上要远远小于计算机本身的运行速度,那么并行运算将会失去其本身原有的意义。

在算法并行模型的构建过程当中,其一共可分为三个步骤:首先,分析算法模型,寻找出该模型当中运算量最大的部分,这些部分也是在并将计算当中运算量最大的部分。其次,深入分析并行计算的各个模块,从中寻找出能够使并行得以实现的有效方法。最后,对并行计算自身的可行性进行计算,如果所计算出来的结果是额外通信耗时远小于计算耗时时,那么说明并行计算是较为可行的;如果所得出的结果相反,那么其便是低效的。

(二)并行计算编程

针对于并行算法的设计思路主要是:在各个计算节点当中来启动计算进程,找出该算法当中能够并行的部分,并将计算任务进行分块处理,每一个进程都能够完成相应的计算工作,每个进程之间的通信也需要MPICH为其提供所需要的消息传递函数。但图像在存放时是按照行进行存放的,对这些图像采取分块计算方法最为方便的就是使用并行方法。在对图像进行分割时,主要是以计算节点个数为依据将其均分成多个子图像,使得这些子图像在运行时都能够在相应的节点上完成运行。

(三)并行算法效率的提高

并行计算最主要的目的就是为了降低所使用算法在运行过程中所消耗的时间,但如何能够在最短的时间完成相应的算法,提高其运行效率主要在于以下几个方面:首先,降低通信量。在并行计算过程当中一定存在着数据通信,其产生的通信量都是较大的,这将消耗大量的运行时间。为了能够减少和降低这些不必要的数据通信量,应当对运行过程中所产生的不必要数据进行清除,从而减少运算量和运算时间。其次,减少通信次数。当在运算过程当中,需要进行相应的数据通信工作,根据相关的协议和指令都需要对其进行打包等方面的操作,这将消耗CPU的时间。而通信次数的下降,使得图像数据在传送过程中尽量避免按行发送,针对于较为分散的数据则应当对其进行统一打包,一次性将其传送出去。再次,将计算和通信两者重叠在一起来提高自身的运行效率[2]。MPI所提供的通信方式为非阻塞通信,也就是说即便通信工作没有完成,也能够不断进行计算。当将计算和通信这两者的重叠能够正确使用,则能够有效提高其运行效率。最后,使用性能相同的计算机来建立所需要的并行计算集群。之所以在构建并行计算集群上选择性能较为相同的计算机,主要是为了使其在节点上保持一致,同时还能够在系统的管理上进行简化,以便对并行编程工作的相关计算任务进行分割,以此来提高其计算速度。

二、灰度相关匹配算法

(一)并行算法的实现

在该算法当中需要进行多次的计算,其所得出的计算量很大,尤其是红外和大尺寸雷达这两种图像能够匹配在一起时,使用单台计算机对其进行计算,所消耗的时间较长,无法达到令人满意的状态。在这种情况下,应当采用并行集群计算,以此来大大减少计算过程中所消耗的时间。针对于灰度相关值的计算,其是在本身的计算量是很大的,而并行计算中最重要的思想便是将计算灰度相关值本身的任务分解到各个计算节点上来执行。其具体的实现过程为:需要先依据计算中的各个节点将参考图分割成多个子图像,计算出所需要的相关值和最大值所相对应的坐标,然后在通过这些节点进程将所得出的结果传递给进程0,最终得出的所需的匹配结果[3]。

(二)结果分析

在该并行计算当中,通信量通常较小,时间基本为0,但是随着计算节点的不断增多,SP增大,这非常清楚的说明了在节点不断增多的情况下,计算速度也在不断提高。在计算过程中,当某一个节点的计算性能较差,所消耗的时间较多,那么下一个节点就需要等该节点计算完成以后,便能够有效得出相应的图像匹配结果。如果节点性能较低,这将在一定程度上造成其他节点出现额外等待的情况,因此在并行计算集群当中应当尽量选择性能相同或是较为相近的微机。

总结

总之,从以上所论述的内容当中我们能够清楚看出,每个节点之间在通信上所消耗的时间,将会对去并行计算的速度和效率产生较大的影响,需要增加在计算和通信两者在耗时上比例,当该比值越大时,那么其并行效率也就越高,如果当该比值小于1时,那么则在一定程度上说明此算法不是用在并行计算上。因此,应当根据运算的实际情况采取措施增加其运算效率,从而达到人们所需要的效果。

[1]贾茹.基于MPI并行计算的CT滤波反投影图像重建算法研究[J].内蒙古农业大学学报(自然科学版),2015,(02):131-136.

[2]李海荣,方中纯.应用MPICH并行化图像处理算法[J].计算机技术与发展,2013,(07):101-103+107.

[3]宗亮.图像并行处理的研究[J].科技视界,2012,(05):67-68.

猜你喜欢
图像处理消耗集群
海战场侦察图像处理技术图谱及应用展望
人工智能辅助冠状动脉CTA图像处理和诊断的研究进展
转炉炼钢降低钢铁料消耗的生产实践
功能性新材料产业集群加速形成
降低钢铁料消耗的生产实践
海上小型无人机集群的反制装备需求与应对之策研究
基于ARM嵌入式的关于图像处理的交通信号灯识别
基于图像处理的废有色金属自动分选算法研究
培育世界级汽车产业集群
勤快又呆萌的集群机器人