李 欣,王 婷
西南科技大學(xué)理學(xué)院
MPI并行計(jì)算在圖像處理方面的應(yīng)用
李 欣,王 婷
西南科技大學(xué)理學(xué)院
隨著科學(xué)技術(shù)的不斷發(fā)展,人們?cè)诤芏喙こ谭矫鎸?duì)計(jì)算機(jī)的運(yùn)行速度提出兩個(gè)更高的要求。圖形處理廣泛應(yīng)用在神經(jīng)網(wǎng)絡(luò)計(jì)算和地形匹配等方面,其在運(yùn)行過程中將產(chǎn)生大量的計(jì)算任務(wù),這在一定程度上對(duì)計(jì)算機(jī)本身所具有的性能提出了更高的要求。近年來,微處理器本身的性能有了較大的提升,在局域網(wǎng)高速發(fā)展的狀態(tài),人們可以使用微機(jī)通過局域網(wǎng)進(jìn)行連接,形成并行集群計(jì)算系統(tǒng),有利于提高對(duì)圖像的處理。基于此,本文就對(duì)MPI并行計(jì)算在圖像處理方面的應(yīng)用進(jìn)行探討。
MPI并行計(jì)算;圖像處理;應(yīng)用
現(xiàn)階段,MPI是一個(gè)較為常用并行計(jì)算環(huán)境,其是一種用于消息傳遞的接口標(biāo)準(zhǔn),由MPI論壇最先推出,其制定的主要標(biāo)準(zhǔn)是提高并行程序的性能。MPI論壇是在1994年推出的MPI的首個(gè)版本,隨著相關(guān)技術(shù)的發(fā)展,其也隨之退出了多個(gè)版本,到現(xiàn)在為MPI最新的版本為6.2版本,成為當(dāng)下業(yè)內(nèi)所執(zhí)行的并行計(jì)算標(biāo)準(zhǔn)。下面筆者就對(duì)MPI并行算法進(jìn)行探討。
(一)構(gòu)建處理算法并行模型
算法并行模型的構(gòu)建在其是使用過程當(dāng)中是十分重要的。并行計(jì)算的主要目的是為了能夠利用計(jì)算集群來縮短計(jì)算時(shí)間,從而提高計(jì)算效率。要想實(shí)現(xiàn)并行計(jì)算的算法主要是將眾多的計(jì)算節(jié)點(diǎn)之間在數(shù)據(jù)上進(jìn)行交換,因此并行計(jì)算也會(huì)在運(yùn)行過程中摻入額外通信時(shí)間[1]。這種額外通信時(shí)間如果過大,那么將會(huì)在一定程度上使并行計(jì)算出現(xiàn)較為嚴(yán)重的運(yùn)行效率下降的情況。當(dāng)額外通信時(shí)間總體大于并行計(jì)算在運(yùn)行過程中所節(jié)省的時(shí)間,沒那么這種并行集群在運(yùn)算速度上要遠(yuǎn)遠(yuǎn)小于計(jì)算機(jī)本身的運(yùn)行速度,那么并行運(yùn)算將會(huì)失去其本身原有的意義。
在算法并行模型的構(gòu)建過程當(dāng)中,其一共可分為三個(gè)步驟:首先,分析算法模型,尋找出該模型當(dāng)中運(yùn)算量最大的部分,這些部分也是在并將計(jì)算當(dāng)中運(yùn)算量最大的部分。其次,深入分析并行計(jì)算的各個(gè)模塊,從中尋找出能夠使并行得以實(shí)現(xiàn)的有效方法。最后,對(duì)并行計(jì)算自身的可行性進(jìn)行計(jì)算,如果所計(jì)算出來的結(jié)果是額外通信耗時(shí)遠(yuǎn)小于計(jì)算耗時(shí)時(shí),那么說明并行計(jì)算是較為可行的;如果所得出的結(jié)果相反,那么其便是低效的。
(二)并行計(jì)算編程
針對(duì)于并行算法的設(shè)計(jì)思路主要是:在各個(gè)計(jì)算節(jié)點(diǎn)當(dāng)中來啟動(dòng)計(jì)算進(jìn)程,找出該算法當(dāng)中能夠并行的部分,并將計(jì)算任務(wù)進(jìn)行分塊處理,每一個(gè)進(jìn)程都能夠完成相應(yīng)的計(jì)算工作,每個(gè)進(jìn)程之間的通信也需要MPICH為其提供所需要的消息傳遞函數(shù)。但圖像在存放時(shí)是按照行進(jìn)行存放的,對(duì)這些圖像采取分塊計(jì)算方法最為方便的就是使用并行方法。在對(duì)圖像進(jìn)行分割時(shí),主要是以計(jì)算節(jié)點(diǎn)個(gè)數(shù)為依據(jù)將其均分成多個(gè)子圖像,使得這些子圖像在運(yùn)行時(shí)都能夠在相應(yīng)的節(jié)點(diǎn)上完成運(yùn)行。
(三)并行算法效率的提高
并行計(jì)算最主要的目的就是為了降低所使用算法在運(yùn)行過程中所消耗的時(shí)間,但如何能夠在最短的時(shí)間完成相應(yīng)的算法,提高其運(yùn)行效率主要在于以下幾個(gè)方面:首先,降低通信量。在并行計(jì)算過程當(dāng)中一定存在著數(shù)據(jù)通信,其產(chǎn)生的通信量都是較大的,這將消耗大量的運(yùn)行時(shí)間。為了能夠減少和降低這些不必要的數(shù)據(jù)通信量,應(yīng)當(dāng)對(duì)運(yùn)行過程中所產(chǎn)生的不必要數(shù)據(jù)進(jìn)行清除,從而減少運(yùn)算量和運(yùn)算時(shí)間。其次,減少通信次數(shù)。當(dāng)在運(yùn)算過程當(dāng)中,需要進(jìn)行相應(yīng)的數(shù)據(jù)通信工作,根據(jù)相關(guān)的協(xié)議和指令都需要對(duì)其進(jìn)行打包等方面的操作,這將消耗CPU的時(shí)間。而通信次數(shù)的下降,使得圖像數(shù)據(jù)在傳送過程中盡量避免按行發(fā)送,針對(duì)于較為分散的數(shù)據(jù)則應(yīng)當(dāng)對(duì)其進(jìn)行統(tǒng)一打包,一次性將其傳送出去。再次,將計(jì)算和通信兩者重疊在一起來提高自身的運(yùn)行效率[2]。MPI所提供的通信方式為非阻塞通信,也就是說即便通信工作沒有完成,也能夠不斷進(jìn)行計(jì)算。當(dāng)將計(jì)算和通信這兩者的重疊能夠正確使用,則能夠有效提高其運(yùn)行效率。最后,使用性能相同的計(jì)算機(jī)來建立所需要的并行計(jì)算集群。之所以在構(gòu)建并行計(jì)算集群上選擇性能較為相同的計(jì)算機(jī),主要是為了使其在節(jié)點(diǎn)上保持一致,同時(shí)還能夠在系統(tǒng)的管理上進(jìn)行簡化,以便對(duì)并行編程工作的相關(guān)計(jì)算任務(wù)進(jìn)行分割,以此來提高其計(jì)算速度。
(一)并行算法的實(shí)現(xiàn)
在該算法當(dāng)中需要進(jìn)行多次的計(jì)算,其所得出的計(jì)算量很大,尤其是紅外和大尺寸雷達(dá)這兩種圖像能夠匹配在一起時(shí),使用單臺(tái)計(jì)算機(jī)對(duì)其進(jìn)行計(jì)算,所消耗的時(shí)間較長,無法達(dá)到令人滿意的狀態(tài)。在這種情況下,應(yīng)當(dāng)采用并行集群計(jì)算,以此來大大減少計(jì)算過程中所消耗的時(shí)間。針對(duì)于灰度相關(guān)值的計(jì)算,其是在本身的計(jì)算量是很大的,而并行計(jì)算中最重要的思想便是將計(jì)算灰度相關(guān)值本身的任務(wù)分解到各個(gè)計(jì)算節(jié)點(diǎn)上來執(zhí)行。其具體的實(shí)現(xiàn)過程為:需要先依據(jù)計(jì)算中的各個(gè)節(jié)點(diǎn)將參考圖分割成多個(gè)子圖像,計(jì)算出所需要的相關(guān)值和最大值所相對(duì)應(yīng)的坐標(biāo),然后在通過這些節(jié)點(diǎn)進(jìn)程將所得出的結(jié)果傳遞給進(jìn)程0,最終得出的所需的匹配結(jié)果[3]。
(二)結(jié)果分析
在該并行計(jì)算當(dāng)中,通信量通常較小,時(shí)間基本為0,但是隨著計(jì)算節(jié)點(diǎn)的不斷增多,SP增大,這非常清楚的說明了在節(jié)點(diǎn)不斷增多的情況下,計(jì)算速度也在不斷提高。在計(jì)算過程中,當(dāng)某一個(gè)節(jié)點(diǎn)的計(jì)算性能較差,所消耗的時(shí)間較多,那么下一個(gè)節(jié)點(diǎn)就需要等該節(jié)點(diǎn)計(jì)算完成以后,便能夠有效得出相應(yīng)的圖像匹配結(jié)果。如果節(jié)點(diǎn)性能較低,這將在一定程度上造成其他節(jié)點(diǎn)出現(xiàn)額外等待的情況,因此在并行計(jì)算集群當(dāng)中應(yīng)當(dāng)盡量選擇性能相同或是較為相近的微機(jī)。
總之,從以上所論述的內(nèi)容當(dāng)中我們能夠清楚看出,每個(gè)節(jié)點(diǎn)之間在通信上所消耗的時(shí)間,將會(huì)對(duì)去并行計(jì)算的速度和效率產(chǎn)生較大的影響,需要增加在計(jì)算和通信兩者在耗時(shí)上比例,當(dāng)該比值越大時(shí),那么其并行效率也就越高,如果當(dāng)該比值小于1時(shí),那么則在一定程度上說明此算法不是用在并行計(jì)算上。因此,應(yīng)當(dāng)根據(jù)運(yùn)算的實(shí)際情況采取措施增加其運(yùn)算效率,從而達(dá)到人們所需要的效果。
[1]賈茹.基于MPI并行計(jì)算的CT濾波反投影圖像重建算法研究[J].內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,(02):131-136.
[2]李海榮,方中純.應(yīng)用MPICH并行化圖像處理算法[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,(07):101-103+107.
[3]宗亮.圖像并行處理的研究[J].科技視界,2012,(05):67-68.