梁 亮,朱 超,楊 捷,吳素萍
(寧夏大學 數學計算機學院,寧夏 銀川750021)
Matlab[1]利用并行工具箱PCT (parallel computing toolbox)可以使用多核處理器、GPU (graphic processing unit)和計算機集群來解決高復雜度計算問題和數據密集型問題,用戶借助PCT 可以對Matlab應用程序進行并行化。PCT 工具箱結合分布式計算引擎MDCS (MATLAB distributed computing server)[2]擴展至集群,可以在大規模計算機集群上運行使用更多worker的應用程序。
高光譜圖像處理技術[3,4]被廣泛應用于科學研究領域[5-9]。將高光譜圖像處理技術應用于解決農產品的品質檢測問題,目前已經有一些相關的研究成果[10-12]。高光譜圖像技術作為農產品無損檢測的新技術也可應用于解決紅棗的病蟲害外部檢測。但這些研究都是基于串行算法,只能解決小數據問題,針對農產品無損檢測的大數據高光譜圖像處理問題,在分布并行Matlab 環境下的并行研究還少見,本文搭建了Matlab分布式并行計算環境,針對病蟲害外部檢測中高光譜圖像預處理產生的大數據問題,在該環境下對高光譜圖像預處理的大數據問題進行并行優化,設計了生成樣本的功能模塊函數PCii(),取得了一定的加速比,并對結果進行分析。
Linux集群總共有7個節點,均為刀片式服務器。6個計算節點 (處理器:E5620,內存:24GB),1個控制節點(處理器:E5620,內存:8GB),所有節點系統均為Red Hat Enterprise Linux Server release 5.4??刂乒濣c主機名指定為master,內網IP為192.168.10.10,6個計算節點,主機名分別指定為node1~node6,內網IP 地址分別為192.168.10.50~192.168.10.55,各個節點通過高速交換機連成星型拓撲結構,如圖1所示。

圖1 集群拓撲結構
將每個節點的/etc/hosts文件配置如下:
127.0.0.1localhost.localdomainlocalhost
192.168.10.10master master
192.168.10.50node1node1
192.168.10.51node2node2
192.168.10.52node3node3
192.168.10.53node4node4
192.168.10.54node5node5
192.168.10.55node6node6
集群作為一個系統各個節點需要經常交換數據,為保證各個節點之間可以無密碼通信,以保證數據交換的順利完成。需為每個節點配置安全外殼協議ssh (secure shell protocol)服務并開啟ssh服務處于運行狀態。
(1)控制節點創建秘鑰對
ssh-keygen-t dsa-P″-f~/.ssh/id_dsa
(2)添加公鑰到授權文件
cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_ke ys
(3)將控制節點的公鑰復制到其它計算節點中
scp~/.ssh/authorized_keys user@ (Ip):~/.ssh/
IP為主機IP 地址,因機器而異,也可以使用/etc/hosts文件中對應的主機名稱,user為用戶名。
(4)測試ssh是否配置完善
首先測試本地:
ssh localhost
首次登錄會要求輸入密碼,首次登錄成功后使用exit退出后再次連接就無需密碼了。
測試遠程主機:
ssh hostname
hostname為機器主機名稱,和/etc/hosts文件中的名稱對應。和ssh localhost一樣,首次登錄會要求輸入密碼,首次登錄成功后用exit退出,再次連接就無需密碼了。
網絡文件系統NFS (network file system)[13]是一種Linux之間通過網絡共享文件的標準方式,從而保證執行代碼可以從主控節點傳輸到各個計算節點,計算節點也可以將計算結果傳輸到主控節點。配置步驟如下:
(1)啟動Samba服務
在主控節點啟動Samba服務并添加主控節點已經創建好的用以存放執行代碼和執行結果的共享目錄/sharedir。
(2)文件映射配置
首先關閉每個機器的防火墻,再將主控節點的文件/etc/exports內容配置如下:

(3)掛載共享目錄
在計算節點node1 中建立相同的目錄/sharedir,在集群中配置好ssh服務的前提下進入node1,命令如下:
ssh node1
在節點node1 中掛載主控節點共享的目錄/sharedir,命令如下:
mount-t nfs 192.168.10.10:/sharedir/sharedir
前面的/sharedir目錄是控制節點共享的目錄,后面的/sharedir目錄是node1中的目錄??墒褂胢ount命令查看是否掛載成功,此時進入計算節點/sharedir目錄可看到控制節點/sharedir目錄中的文件。至此,node1 節點的配置完成,其它節點的配置可重復第 (2)步和第 (3)步來完成。
計算節點可以像訪問本地磁盤一樣訪問/sharedir目錄,其實數據存放在主控節點的/sharedir目錄下。Samba服務
實驗分別對50、80、110、138個高光譜數據進行并行處理。當高光譜數據為50個時,串行執行時產生300個圖片,2個worker執行時產生300個圖片,4個worker執行時產生300個圖片,6 個worker執行時產生300 個圖片。因此當數據量為50個高光譜數據時,串、并行實驗得到的實驗結果完全相同。當數據量為80、110 和138 時情況類似,說明并行算法能夠保證串行算法的正確性。實驗分4組進行測試,先在集群系統中的單個計算節點進行串行測試,數據量為50 個高光譜數據,為了保證測試結果的穩定,計算結果都是取10次求平均值,worker個數為1、2、4、6的平均執行時間 (s)分別為84.80(s)、43.53(s)、26.20(s)、19.16(s),然后分別在高光譜數據量為80 個、110個和138個時進行測試,在worker數為1、2、4、6個時,實驗測試的平均執行時間如圖3所示。當數據量為50、80、110、138個高光譜數據時,對應的worker數為1、2、4、6的加速比如圖4所示。根據實驗的數據得到不同數據量對應不同worker時的并行效率見表1。

圖3 不同數據量對應不同worker時的平均執行時間

圖4 不同數據量對應不同worker時的加速比

表1 不同數據量對應不同worker時的并行效率/%
從圖3顯示的結果來看,計算量為50個,80個,110個和138個高光譜數據時,處理所需消耗的時間依次增大。相同計算量時,隨著worker個數的增加執行消耗的時間在減少。從圖4顯示的結果來看,2個worker時,加速比處于穩定的值 (1.9+)。4個worker時,隨著數據量的增加加速比在增加,在數據量為80個,110個和138個高光譜數據時加速比處于穩定的值 (3.6+),通過觀察系統的資源管理器我們發現,加速比處于穩定值的時候,計算機CPU 的利用率為100%,CPU 處于滿負荷狀態,因此加速比不會因為數據量的增加而增加,而是處于穩定的值。當worker個數為6個的時候加速比隨著數據量的增加在增加(最高為5.5+),從數據趨勢來看,具有一定的擴展性。從而在實際應用中可以根據應用需求來擴展集群worker節點,提升性能。從表1所示的結果來看,總體的并行效率都保持在73%以上,worker個數為2個的時候,并行效率整體處于穩定的值,當worker個數為4個時對應的數據量為80個、110個和138個高光譜數據的并行效率處于穩定的值,當worker個數為6個的時候,隨著數據量的增加并行效率增加明顯,從73.77% (數據量為50)增加到91.82% (數據量為138)。
本文給出了Linux集群Matlab分布式并行計算系統的搭建方案并對配置過程進行了詳細說明,針對高光譜數據預處理中的大數據問題,在搭建的系統環境上對預處理實現并行優化,設計了生成樣本的功能模塊函數PCii(),縮短了處理時間,在保證結果正確的前提下,提高了算法的運行效率,當worker個數為6個時,數據量為138個高光譜數據時最高獲得了5.5+的加速比,根據實驗結果從不同角度對并行算法和系統進行了分析,具有一定的可擴展性,進一步的研究是利用高光譜數據分析進行農產品的內部檢測。
[1]YU Lian.MATLAB parallel computing:Make use of high performance computing resources more efficiently [J].Application of Electronic Technique,2009 (1):4-4 (in Chinese).[余蓮.MATLAB并行計算:讓高性能計算資源的利用更加高效 [J].電子技術應用,2009 (1):4-4.]
[2]YUAN Shu,HUANG Xuechao,YANG Heng.Configuration and application of Matlab parallel computing cluster under Windows environment [J].Computer and Modernization,2010(5):189-194 (in Chinese). [袁舒,黃學超,楊烜.Windows環境下的Matlab并行機群計算配置及應用 [J].計算機與現代化,2010 (5):189-194.]
[3]WU Chao.Research on some key technology of hyperspectral image processing[D].Nanjing:Nanjing University of Aeronautics and Astronautics,2012 (in Chinese).[吳超.高光譜圖像處理若干關鍵技術研究[D].南京:南京航空航天大學,2012.]
[4]SUN D.Hyperspectral imaging for food quality analysis and control[M].Elsevier,2010.
[5]Camps-Valls G,Tuia D,Bruzzone L,et al.Advances in hyperspectral image classificatioN:Earth monitoring with statistical learning methods[J].Signal Processing Magazine,IEEE,2014,31 (1):45-54.
[6]Liu D,Sun D,Zeng X.Recent advances in wavelength selection techniques for hyperspectral image processing in the food industry [J].Food and Bioprocess Technology,2014,7(2):307-323.
[7]WANG Maozhi,GUO Ke,XU Wenxi.Hyperspectral remote sensing image parallel processing based on cluster and GPU[J].Infrared and Laster Engineering,2013,42 (11):3070-3075 (in Chinese). [王茂芝,郭科,徐文皙.基于集群和GPU 的高光譜遙感影像并行處理 [J].紅外與激光工程,2013,42 (11):3070-3075.]
[8]Nascimento J M,Bioucas-Dias J M,Rodriguez Alves J M,et al.Parallel hyperspectral unmixing on GPUs[J].Geoscience and Remote Sensing Letters,IEEE,2014,11 (3):666-670.
[9]ZHENG Xiaowei,YU Mengling.Parallelization design of face recognition algorithm based on Matlab multi-core cluster[J].Journal of Computer Application,2011,31 (10):2597-2599 (in Chinese).[鄭曉薇,于夢玲.基于Matlab多核集群的人臉識別算法的并行化設計[J].計算機應用,2011,31(10):2597-2599.]
[10]LI Jinmeng,YE Xujun,WANG Qiaonan,et al.Development of prediction models for determining n content in citrus leaves based on hyperspectral imaging technology [J].Spectroscopy and Spectral Analysis,2014,34 (1):212-216 (in Chinese).[李金夢,葉旭君,王巧男,等.高光譜成像技術的柑橘植株葉片含氮量預測模型 [J].光譜學與光譜分析,2014,34 (1):212-216]
[11]YU K,ZHAO Y,LI X,et al.Identification of crack features in fresh jujube using Vis/NIR hyperspectral imaging combined with image processing [J].Computers and Electronics in Agriculture,2014,103:1-10.
[12]Chen J,Chen H,Wang X,et al.The characteristic of Hyperspectral image of wheat seeds during sprouting [M].Computer and Computing Technologies in Agriculture VII,Springer,2014:408-421.
[13]YING Xuan.Linux under the NFS file system (network),the establishment and configuration method [J].Computer &Network,2013 (21):44-45 (in Chinese).[瑛宣.Linux下NFS (網絡文件系統)的建立與配置方法 [J].計算機與網絡,2013 (21):44-45.]