梁 亮,朱 超,楊 捷,吳素萍
(寧夏大學(xué) 數(shù)學(xué)計(jì)算機(jī)學(xué)院,寧夏 銀川750021)
Matlab[1]利用并行工具箱PCT (parallel computing toolbox)可以使用多核處理器、GPU (graphic processing unit)和計(jì)算機(jī)集群來解決高復(fù)雜度計(jì)算問題和數(shù)據(jù)密集型問題,用戶借助PCT 可以對Matlab應(yīng)用程序進(jìn)行并行化。PCT 工具箱結(jié)合分布式計(jì)算引擎MDCS (MATLAB distributed computing server)[2]擴(kuò)展至集群,可以在大規(guī)模計(jì)算機(jī)集群上運(yùn)行使用更多worker的應(yīng)用程序。
高光譜圖像處理技術(shù)[3,4]被廣泛應(yīng)用于科學(xué)研究領(lǐng)域[5-9]。將高光譜圖像處理技術(shù)應(yīng)用于解決農(nóng)產(chǎn)品的品質(zhì)檢測問題,目前已經(jīng)有一些相關(guān)的研究成果[10-12]。高光譜圖像技術(shù)作為農(nóng)產(chǎn)品無損檢測的新技術(shù)也可應(yīng)用于解決紅棗的病蟲害外部檢測。但這些研究都是基于串行算法,只能解決小數(shù)據(jù)問題,針對農(nóng)產(chǎn)品無損檢測的大數(shù)據(jù)高光譜圖像處理問題,在分布并行Matlab 環(huán)境下的并行研究還少見,本文搭建了Matlab分布式并行計(jì)算環(huán)境,針對病蟲害外部檢測中高光譜圖像預(yù)處理產(chǎn)生的大數(shù)據(jù)問題,在該環(huán)境下對高光譜圖像預(yù)處理的大數(shù)據(jù)問題進(jìn)行并行優(yōu)化,設(shè)計(jì)了生成樣本的功能模塊函數(shù)PCii(),取得了一定的加速比,并對結(jié)果進(jìn)行分析。
Linux集群總共有7個(gè)節(jié)點(diǎn),均為刀片式服務(wù)器。6個(gè)計(jì)算節(jié)點(diǎn) (處理器:E5620,內(nèi)存:24GB),1個(gè)控制節(jié)點(diǎn)(處理器:E5620,內(nèi)存:8GB),所有節(jié)點(diǎn)系統(tǒng)均為Red Hat Enterprise Linux Server release 5.4??刂乒?jié)點(diǎn)主機(jī)名指定為master,內(nèi)網(wǎng)IP為192.168.10.10,6個(gè)計(jì)算節(jié)點(diǎn),主機(jī)名分別指定為node1~node6,內(nèi)網(wǎng)IP 地址分別為192.168.10.50~192.168.10.55,各個(gè)節(jié)點(diǎn)通過高速交換機(jī)連成星型拓?fù)浣Y(jié)構(gòu),如圖1所示。
圖1 集群拓?fù)浣Y(jié)構(gòu)
將每個(gè)節(jié)點(diǎn)的/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
集群作為一個(gè)系統(tǒng)各個(gè)節(jié)點(diǎn)需要經(jīng)常交換數(shù)據(jù),為保證各個(gè)節(jié)點(diǎn)之間可以無密碼通信,以保證數(shù)據(jù)交換的順利完成。需為每個(gè)節(jié)點(diǎn)配置安全外殼協(xié)議ssh (secure shell protocol)服務(wù)并開啟ssh服務(wù)處于運(yùn)行狀態(tài)。
(1)控制節(jié)點(diǎn)創(chuàng)建秘鑰對
ssh-keygen-t dsa-P″-f~/.ssh/id_dsa
(2)添加公鑰到授權(quán)文件
cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_ke ys
(3)將控制節(jié)點(diǎn)的公鑰復(fù)制到其它計(jì)算節(jié)點(diǎn)中
scp~/.ssh/authorized_keys user@ (Ip):~/.ssh/
IP為主機(jī)IP 地址,因機(jī)器而異,也可以使用/etc/hosts文件中對應(yīng)的主機(jī)名稱,user為用戶名。
(4)測試ssh是否配置完善
首先測試本地:
ssh localhost
首次登錄會要求輸入密碼,首次登錄成功后使用exit退出后再次連接就無需密碼了。
測試遠(yuǎn)程主機(jī):
ssh hostname
hostname為機(jī)器主機(jī)名稱,和/etc/hosts文件中的名稱對應(yīng)。和ssh localhost一樣,首次登錄會要求輸入密碼,首次登錄成功后用exit退出,再次連接就無需密碼了。
網(wǎng)絡(luò)文件系統(tǒng)NFS (network file system)[13]是一種Linux之間通過網(wǎng)絡(luò)共享文件的標(biāo)準(zhǔn)方式,從而保證執(zhí)行代碼可以從主控節(jié)點(diǎn)傳輸?shù)礁鱾€(gè)計(jì)算節(jié)點(diǎn),計(jì)算節(jié)點(diǎn)也可以將計(jì)算結(jié)果傳輸?shù)街骺毓?jié)點(diǎn)。配置步驟如下:
(1)啟動(dòng)Samba服務(wù)
在主控節(jié)點(diǎn)啟動(dòng)Samba服務(wù)并添加主控節(jié)點(diǎn)已經(jīng)創(chuàng)建好的用以存放執(zhí)行代碼和執(zhí)行結(jié)果的共享目錄/sharedir。
(2)文件映射配置
首先關(guān)閉每個(gè)機(jī)器的防火墻,再將主控節(jié)點(diǎn)的文件/etc/exports內(nèi)容配置如下:
(3)掛載共享目錄
在計(jì)算節(jié)點(diǎn)node1 中建立相同的目錄/sharedir,在集群中配置好ssh服務(wù)的前提下進(jìn)入node1,命令如下:
ssh node1
在節(jié)點(diǎn)node1 中掛載主控節(jié)點(diǎn)共享的目錄/sharedir,命令如下:
mount-t nfs 192.168.10.10:/sharedir/sharedir
前面的/sharedir目錄是控制節(jié)點(diǎn)共享的目錄,后面的/sharedir目錄是node1中的目錄??墒褂胢ount命令查看是否掛載成功,此時(shí)進(jìn)入計(jì)算節(jié)點(diǎn)/sharedir目錄可看到控制節(jié)點(diǎn)/sharedir目錄中的文件。至此,node1 節(jié)點(diǎn)的配置完成,其它節(jié)點(diǎn)的配置可重復(fù)第 (2)步和第 (3)步來完成。
計(jì)算節(jié)點(diǎn)可以像訪問本地磁盤一樣訪問/sharedir目錄,其實(shí)數(shù)據(jù)存放在主控節(jié)點(diǎn)的/sharedir目錄下。Samba服務(wù)
實(shí)驗(yàn)分別對50、80、110、138個(gè)高光譜數(shù)據(jù)進(jìn)行并行處理。當(dāng)高光譜數(shù)據(jù)為50個(gè)時(shí),串行執(zhí)行時(shí)產(chǎn)生300個(gè)圖片,2個(gè)worker執(zhí)行時(shí)產(chǎn)生300個(gè)圖片,4個(gè)worker執(zhí)行時(shí)產(chǎn)生300個(gè)圖片,6 個(gè)worker執(zhí)行時(shí)產(chǎn)生300 個(gè)圖片。因此當(dāng)數(shù)據(jù)量為50個(gè)高光譜數(shù)據(jù)時(shí),串、并行實(shí)驗(yàn)得到的實(shí)驗(yàn)結(jié)果完全相同。當(dāng)數(shù)據(jù)量為80、110 和138 時(shí)情況類似,說明并行算法能夠保證串行算法的正確性。實(shí)驗(yàn)分4組進(jìn)行測試,先在集群系統(tǒng)中的單個(gè)計(jì)算節(jié)點(diǎn)進(jìn)行串行測試,數(shù)據(jù)量為50 個(gè)高光譜數(shù)據(jù),為了保證測試結(jié)果的穩(wěn)定,計(jì)算結(jié)果都是取10次求平均值,worker個(gè)數(shù)為1、2、4、6的平均執(zhí)行時(shí)間 (s)分別為84.80(s)、43.53(s)、26.20(s)、19.16(s),然后分別在高光譜數(shù)據(jù)量為80 個(gè)、110個(gè)和138個(gè)時(shí)進(jìn)行測試,在worker數(shù)為1、2、4、6個(gè)時(shí),實(shí)驗(yàn)測試的平均執(zhí)行時(shí)間如圖3所示。當(dāng)數(shù)據(jù)量為50、80、110、138個(gè)高光譜數(shù)據(jù)時(shí),對應(yīng)的worker數(shù)為1、2、4、6的加速比如圖4所示。根據(jù)實(shí)驗(yàn)的數(shù)據(jù)得到不同數(shù)據(jù)量對應(yīng)不同worker時(shí)的并行效率見表1。
圖3 不同數(shù)據(jù)量對應(yīng)不同worker時(shí)的平均執(zhí)行時(shí)間
圖4 不同數(shù)據(jù)量對應(yīng)不同worker時(shí)的加速比
表1 不同數(shù)據(jù)量對應(yīng)不同worker時(shí)的并行效率/%
從圖3顯示的結(jié)果來看,計(jì)算量為50個(gè),80個(gè),110個(gè)和138個(gè)高光譜數(shù)據(jù)時(shí),處理所需消耗的時(shí)間依次增大。相同計(jì)算量時(shí),隨著worker個(gè)數(shù)的增加執(zhí)行消耗的時(shí)間在減少。從圖4顯示的結(jié)果來看,2個(gè)worker時(shí),加速比處于穩(wěn)定的值 (1.9+)。4個(gè)worker時(shí),隨著數(shù)據(jù)量的增加加速比在增加,在數(shù)據(jù)量為80個(gè),110個(gè)和138個(gè)高光譜數(shù)據(jù)時(shí)加速比處于穩(wěn)定的值 (3.6+),通過觀察系統(tǒng)的資源管理器我們發(fā)現(xiàn),加速比處于穩(wěn)定值的時(shí)候,計(jì)算機(jī)CPU 的利用率為100%,CPU 處于滿負(fù)荷狀態(tài),因此加速比不會因?yàn)閿?shù)據(jù)量的增加而增加,而是處于穩(wěn)定的值。當(dāng)worker個(gè)數(shù)為6個(gè)的時(shí)候加速比隨著數(shù)據(jù)量的增加在增加(最高為5.5+),從數(shù)據(jù)趨勢來看,具有一定的擴(kuò)展性。從而在實(shí)際應(yīng)用中可以根據(jù)應(yīng)用需求來擴(kuò)展集群worker節(jié)點(diǎn),提升性能。從表1所示的結(jié)果來看,總體的并行效率都保持在73%以上,worker個(gè)數(shù)為2個(gè)的時(shí)候,并行效率整體處于穩(wěn)定的值,當(dāng)worker個(gè)數(shù)為4個(gè)時(shí)對應(yīng)的數(shù)據(jù)量為80個(gè)、110個(gè)和138個(gè)高光譜數(shù)據(jù)的并行效率處于穩(wěn)定的值,當(dāng)worker個(gè)數(shù)為6個(gè)的時(shí)候,隨著數(shù)據(jù)量的增加并行效率增加明顯,從73.77% (數(shù)據(jù)量為50)增加到91.82% (數(shù)據(jù)量為138)。
本文給出了Linux集群Matlab分布式并行計(jì)算系統(tǒng)的搭建方案并對配置過程進(jìn)行了詳細(xì)說明,針對高光譜數(shù)據(jù)預(yù)處理中的大數(shù)據(jù)問題,在搭建的系統(tǒng)環(huán)境上對預(yù)處理實(shí)現(xiàn)并行優(yōu)化,設(shè)計(jì)了生成樣本的功能模塊函數(shù)PCii(),縮短了處理時(shí)間,在保證結(jié)果正確的前提下,提高了算法的運(yùn)行效率,當(dāng)worker個(gè)數(shù)為6個(gè)時(shí),數(shù)據(jù)量為138個(gè)高光譜數(shù)據(jù)時(shí)最高獲得了5.5+的加速比,根據(jù)實(shí)驗(yàn)結(jié)果從不同角度對并行算法和系統(tǒng)進(jìn)行了分析,具有一定的可擴(kuò)展性,進(jìn)一步的研究是利用高光譜數(shù)據(jù)分析進(jìn)行農(nóng)產(chǎn)品的內(nèi)部檢測。
[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ì)算:讓高性能計(jì)算資源的利用更加高效 [J].電子技術(shù)應(yīng)用,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). [袁舒,黃學(xué)超,楊烜.Windows環(huán)境下的Matlab并行機(jī)群計(jì)算配置及應(yīng)用 [J].計(jì)算機(jī)與現(xiàn)代化,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).[吳超.高光譜圖像處理若干關(guān)鍵技術(shù)研究[D].南京:南京航空航天大學(xué),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多核集群的人臉識別算法的并行化設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,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).[李金夢,葉旭君,王巧男,等.高光譜成像技術(shù)的柑橘植株葉片含氮量預(yù)測模型 [J].光譜學(xué)與光譜分析,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 (網(wǎng)絡(luò)文件系統(tǒng))的建立與配置方法 [J].計(jì)算機(jī)與網(wǎng)絡(luò),2013 (21):44-45.]