基于MATLAB的局域網(wǎng)集群的構建
目前的常用科學計算大多基于Matlab 環(huán)境,因此,開發(fā)基于Matlab 的并行計算平臺也有很大的必要性。在本文的設計中,并行優(yōu)化平臺的運行是在Matlab 環(huán)境中進行的,由于Matlab 是一種跨平臺軟件,因此整個并行計算環(huán)境也間接地實現(xiàn)了跨平臺,滿足了在Windows 平臺下并行計算的需要。在平臺實現(xiàn)中,如果能有效地利用大粒度分解計算,可以降低程序?qū)崿F(xiàn)的復雜性。從機群系統(tǒng)的應用要求上來看,也需要大粒度的并行,以減少通訊開銷,從而獲得更高效率。因此,并行優(yōu)化計算環(huán)境的設計是大粒度的。Parallel Computing Toolbox并行計算功能現(xiàn)已整合到Optimization Toolbox和Genetic Algorithm and Direct Search Toolbox等優(yōu)化求解器之中,讓用戶能夠在不會對其現(xiàn)有應用造成過多影響的情況下,在多核計算機和計算機集群上更好地解決密集型計算優(yōu)化問題,以進一步簡化并行應用的開發(fā)。


實驗室內(nèi)局域網(wǎng)所用機器均采用操作系統(tǒng)為WINDOWS XP SP2,快速以太網(wǎng)網(wǎng)卡10/100Mbps,通過路由器連接,并安裝MATLABR2008b及相關工具箱,表3.1和表3.2分別給出了集群相關硬件配置和安裝軟件
3.2.2軟件安裝和MDCE配置
安裝完畢后在雙擊主節(jié)點機的matlabrootflexlm文件夾下的lmtool.exe(matlabroot表示matlab軟件的安裝目錄,下面不再作說明),開啟Matlab License Server。 其他節(jié)點機除了無須再安裝License Manager外,其他步驟大致與主節(jié)點機相同,整個詳細安裝步驟不再贅述,可參考MATLAB® & Simulink® Release 2008b Installation Guide for Windows®和Installing MATLAB® Distributed Computing Server™ 4.0 on a Windows® Operating System Cluster,如果出現(xiàn)錯誤,仔細排查并認真查看文檔和在線支持。成功在不同機器上安裝好 #p#page_title#e#MATLAB相關產(chǎn)品和工具箱并配置分布計算環(huán)境是重要的一步也是必不可少的一步,網(wǎng)絡機群本身無法進行分布并行計算,并行程序開發(fā)和應用很大程度上依賴軟件和算法的支持。 MDCE配置 如果存在舊的mdce服務,則要先停止,打開DOS命令窗口,輸入cd oldmatlabroot oolboxdistcompinwin32,輸入命令mdce uninstall,并刪除相應日志和檢查文件C:TEMPMDCE,其它機器上如果存在舊的安裝同樣方法移除。安裝并開啟新的mdce服務,同樣在DOS命令窗口輸入cd matlabroot oolboxdistcompinwin32,切換到新的mdce目錄,輸入命令mdce uninstall即安裝mdce服務,mdce start啟動服務,其他機子上重復這個過程這樣所有機器上都啟動了mdce服務,以后每次重啟開機都會隨系統(tǒng)自動運行。 首先在任一臺機器上開啟調(diào)度管理器(Job Manager),進入DOS命令窗口,用cd 命令切換到matlabroot oolboxdistcompinwin32,啟動JobManager語句格式為:startjobmanager –flags ,flags為操作標記,如表3.3所示 如startjobmanager -name MyJobManager 即在本地機器上開啟一個名為MyJobManager的作業(yè)管理器,startjobmanager -name myjm -remotehost SQY 則是在主機SQY上開啟一個名為myjm的作業(yè)管理器。這個過程要保證網(wǎng)絡暢通互連,并各機器運行mdce服務。在集群上可開啟多個Job Manager,但名稱要唯一,不能重復。如果要停止一個作業(yè)管理器,則用stopjobmanager –flags 格式與上基本相同,不同重述。查看其運行狀態(tài)可用語句nodestatus -remotehost <job manager hostname>,然后再開啟worker,語句格式為start worker –flags ,flags為操作標記,如表3.4所示 如startworker -name worker1 -remotehost bug -jobmanager myjm -jobmanagerhost SQY 即在節(jié)點機bug上開啟一個名為worker1由主節(jié)點機SQY上名為的myjm調(diào)度器進行管理,一臺機器上可開啟多少worker,一個較好的原則是其個數(shù)不應超過這臺機器處理器內(nèi)核個數(shù),多了無益,性能也不會有多大提升。如果要停止某一臺機子上的worker,則用語句stopworker –flags,flags標記同表3.4。 只要保持各臺機器網(wǎng)絡互連、解除防火墻相應程序和端口的阻止及mdce服務的正常運行,這些命令可在任一臺機器上執(zhí)行,完成整個的集群配置工作。用nodestatus -flags命令可查看各機器上Job Manager和worker的運行狀態(tài)。下圖3.8所示,在主節(jié)點(服務器節(jié)點)SQY的主機上有一個名為myjm的作業(yè)管理器,管理局域網(wǎng)8個worker,且在主節(jié)點機上運行有2個worker。 MATLAB還提供了圖形用戶界面Admin Center 來管理集群機器,點擊MATLAB主菜單“parallel”下的“Admin Center”,即可進入管理中心圖形用戶界面,可以載入建立好的局域網(wǎng)集群,查看、編輯和添加節(jié)點機,如圖3.9所示,進行客戶端機器、節(jié)點機之間的連接、端口及主機名一致性等測試,最后給出測試結(jié)果,如圖3.10所示。在測試前注意先關閉防火或設置相應的例外程序和端口,不然可能會出現(xiàn)各節(jié)點機連接測試失敗的情況。 上節(jié)已經(jīng)介紹了軟件安裝配置的一個過程,總的來說如下圖所示: 計算環(huán)境搭建好了,下面對各個計算節(jié)點作一個簡單的測試: 計算平臺性能測試是一個重要的環(huán)節(jié),通過MATLAB提供類似Linpack的標準測試程序[56](MATLAB Benchmark),包括大型稠密矩陳LU分解、快速傅立葉變換(Fast Fourier transform,FFT)、解范德波爾方程(van der Pol equation)、解對稱稀疏線性系統(tǒng)及2D,3D圖形顯示,表3.6所示。測試程序主要針對特定的MATLAB版本在不同機器的浮點運算性能(Floating-point)、規(guī)則和不規(guī)則存儲、數(shù)據(jù)結(jié)構、整點和浮點混合運算性能等出對比。 #p#page_title#e#后兩項圖形測試不是本節(jié)主要測試內(nèi)容,為附帶測試,對前四項作簡要介紹 對上面測試程序在節(jié)點機上連續(xù)4次運行,在MATLAB命令窗口輸入>>t=bench(4),得到如下結(jié)果,各程序運行計算以秒(second)記,圖3.11 (a),(b)給出了本臺機器測試結(jié)果與其他不同操作系統(tǒng)和處理器主頻下相同MATLAB版本的對比情況,測試結(jié)果與操作系統(tǒng)類型,處理器主頻,開啟的線程數(shù),內(nèi)存大小等有關,從中可以看出本機的浮點計算,規(guī)則及不規(guī)則存儲等方面的性能,各次測試結(jié)果在5%到10%之間浮動是正常的,因為不同時刻的內(nèi)在和CPU使用率是有所變化的,這里不再給出細致的比較分析 (a)測試程序運行時間對比 (b)測試程序運行相對速度柱狀圖 圖3.11 測試程序運行時間及對比 由于其他兩臺機器與主節(jié)點機配置一樣,不再單獨測試,下面是前四個測試程序?qū)悍植际接嬎氵M行測試,測試結(jié)果如圖3.12所示,由于集群各計算中各個時刻CPU、內(nèi)在使用率和網(wǎng)絡通信延遲等因素存在差異,因此在集群計算過程中,要考慮的因素主要有通信技術、負載均衡(指分配到各個處理結(jié)點上并行執(zhí)行的子任務即負載的均衡程度)、并行粒度、安全等
MATLAB產(chǎn)品及工具箱
FLEXnet license manager
計算節(jié)點測試
這了更好了體現(xiàn)并行計算的特點,最后運用并行遺傳算法對一個計算耗時較長的耗時問題進行了計算結(jié)果如下圖表所示,這里不作具體分析: