大數據並行計算利器之MPI/OpenMP GPU---並行計算利器

大數據集羣計算利器之MPI/OpenMP

---以連通域標記算法並行化爲例

1 背景

       圖像連通域標記算法是從一幅柵格圖像(一般爲二值圖像)中,將互相鄰接(4鄰接或8鄰接)的具備非背景值的像素集合提取出來,爲不一樣的連通域填入數字標記,而且統計連通域的數目。經過對柵格圖像中進行連通域標記,可用於靜態地分析各連通域斑塊的分佈,或動態地分析這些斑塊隨時間的集聚或離散,是圖像處理很是基礎的算法。目前經常使用的連通域標記算法有1)掃描法(二次掃描法、單向反覆掃描法等)、2)線標記法、3)區域增加法。二次掃描法因爲簡單通用而被普遍使用!html

圖1 連通域標記示意圖算法

 

      隨着所要處理的數據量愈來愈大,使用傳統的串行計算技術的連通域標記算法運行時間過長,難以知足實際應用的效率需求。隨着並行計算技術的發展,利用不一樣的編程模型,許多數據密集型的計算任務能夠被同時分配給單機多核或多機多處理器進行並行處理,從而有可能大幅度縮減計算時間。目前在集羣計算領域普遍使用MPI來進行並行化,在單機領域普遍使用OpenMP進行化,本文針對基於等價對的二值圖像連通域標記算法的進行了並行化設計,利用不一樣的並行編程模型分別實現了不一樣的並行算法,並經過實驗對利用不一樣並行編程模型所實現的連通域標記算法進行了性能對比分析。編程

2 二次掃描串行算法思想

  顧名思義,二次掃描串行算法步驟包含兩部分。數組

2.1 第一次掃描

a)標記post

b)等價關係創建性能

2.2 第二次掃描

      利用並查集鏈表進行標記更新。測試

 

3 並行化策略

3.1 數據劃分並行策略 

        二次掃描的串行算法中,非直接相鄰的各像元數據之間是無關的,將圖像分割爲數據塊後,對於各個數據塊之間的主體運算也是獨立無關的,可並行性較高,所以可經過對圖像進行分塊來加快計算時間、提升計算效率。大數據

 

3.2 並行算法步驟

a)各個進程分別使用串行算法計算 url

b)各個進程將各塊的標記值惟一化spa

 
c)生成等價對數組
d)主進程生成全局並查集鏈表

    將1到n-1進程中比較得到的等價對數組統一發送給0進程,0進程生成並查集鏈表。

e)廣播全局並查集鏈表,各進程更改標記值

    主進程廣播全局並查集鏈表,各進程接收後更新標記值。

4 程序實現

      並行算法詳細流程圖。

 

       MPI版本和OpenMP版本的並行算法。

 

5 測試準備

5.1 實驗目的

a)正確性
b)效率:測試不一樣連通域數目的數據、不一樣機器環境(單機和集羣)、不一樣並行編程模型(MPI和OpenMP)對二次掃描並行算法效率的影響。

5.2 測試環境

a)單節點

       CPU:兩顆Intel(R) Quad Core E5645 Xeon(R) CPU,共12核;

       內存:80GB ;操做系統:Linux CentOS 64位。

b)高性能集羣(4個計算節點,1個存儲節點)

      CPU:兩顆Intel(R) Quad Core E5645 Xeon(R) CPU,共12核;

      內存:32GB;操做系統:Linux CentOS 64位;

      節點間文件系統:Network File System (NFS)。

c)測試數據
     兩個相同數據量( 18640×22260 )的二值柵格圖像,一個連通域爲3個(簡單圖),一個連通域爲10433個(複雜圖)

6  效率測試結果

6.1 結果1:複雜圖和簡單圖的運行時間

6.2 爲何複雜圖計算時間更長?

6.3 結果2:單節點環境下,複雜圖和簡單圖的加速比

6.4 問題1:爲何會出現超線性加速比?

     緣由:並查集鏈表的影響。

     連通域標記算法不少時間用於對並查集鏈表進行大量查詢和插入操做。

6.5 問題2:爲何複雜圖比簡單圖加速比高?

6.6 結果3:集羣環境下,複雜圖和簡單圖的加速比

6.7 問題:爲何進程數超過12時,複雜圖加速比再也不上升,而簡單圖加速比繼續上升?

6.8 結果4:OpenMP版本與MPI版本的比較?

6.9問題:爲何MPI 1個進程比OpenMP 1個線程更高效?

6.10 OpenMP開闢線程的開銷?

6.11 OpenMP編譯製導語句會影響編譯結果?

     OpenMP編譯製導語句會影響編譯結果,這也能夠解釋單線程OpenMP程序比串行程序慢這一現象。

 

參考文獻

連通域標記算法的並行化研究,馬益杭、佔利軍、謝傳節、秦承志,《地理與地理信息科學》

 

附錄

GPU---並行計算利器

相關文章
相關標籤/搜索