夏正龍 劉曉龍 趙俊 陳全偉
摘 要:為服務(wù)并行算法實(shí)驗(yàn)教學(xué),在實(shí)驗(yàn)室通過(guò)局域網(wǎng)用Matlab軟件構(gòu)建了服務(wù)于教學(xué)的并行計(jì)算系統(tǒng)平臺(tái)。本文給出并行計(jì)算環(huán)境搭建的詳細(xì)方案,并用實(shí)例測(cè)試。
關(guān)鍵詞:局域網(wǎng);Matlab;并行計(jì)算;實(shí)驗(yàn)教學(xué)
Environment Construction of parallel computing Experimental Teaching
XIA zheng-long,LIU xiao-long, ZHAO jun,HUANG li-shi,YIN de-long,Chen quan-wei
Abstract:Parallel computing Experimental based on LAN network is built in the laboratory by Matlab software for parallel computing Experimental Teaching.In this paper, the detailed scheme is presented environment Construction of parallel computing.
Key words:LAN;Matlab;Parallel Computing;Experimental Teaching
在日常生活中遇到許多問(wèn)題在求解的過(guò)程中都需要很大的計(jì)算量,如背包問(wèn)題,郵遞員問(wèn)題等一系列NP問(wèn)題。因此我們可以采用并行計(jì)算的方法來(lái)解決此類(lèi)問(wèn)題,并行計(jì)算教學(xué)已成為許多本科學(xué)校數(shù)學(xué)專(zhuān)業(yè)必修課程,為使并行計(jì)算的本科教學(xué)能夠順利實(shí)施,必須要有相應(yīng)的實(shí)驗(yàn)教學(xué)環(huán)境[1]。
PC機(jī)群[2]是最容易實(shí)現(xiàn)的并行計(jì)算環(huán)境,Matlab是高校數(shù)學(xué)系學(xué)生常用的軟件,大多高校數(shù)學(xué)系的學(xué)生都掌握Matlab的基本使用,因此本文考慮用Matlab搭建并行計(jì)算實(shí)驗(yàn)教學(xué)環(huán)境,其目的是服務(wù)于高校數(shù)學(xué)系并行計(jì)算教學(xué)和學(xué)習(xí)。本文通過(guò)實(shí)踐給出并行計(jì)算實(shí)驗(yàn)教學(xué)環(huán)境的搭建過(guò)程,先搭建局域網(wǎng),然后通過(guò)局域網(wǎng)搭建多臺(tái)PC機(jī)并行計(jì)算環(huán)境,此方案適合并行計(jì)算實(shí)驗(yàn)教學(xué)和集中上機(jī)實(shí)習(xí)。
1 基于多臺(tái)PC機(jī)實(shí)驗(yàn)室并行環(huán)境搭建
1.1 基本配置及原理介紹
在本文搭建的并行環(huán)境中,涉及的硬件有四臺(tái)PC機(jī)、路由器、雙絞線。操作系統(tǒng)為Windows XP。一臺(tái)PC機(jī)為主機(jī),其余三臺(tái)客服機(jī)。
在Matlab并行機(jī)群中,每臺(tái)參與計(jì)算的計(jì)算機(jī)中都需要啟動(dòng)一個(gè)叫Matlab Distributed Computing Engine(MDCE)的服務(wù)[3]通過(guò)Matlab R2009b構(gòu)建的PC機(jī)群并行環(huán)境如圖1。
1.2 實(shí)驗(yàn)室中Matlab并行計(jì)算機(jī)環(huán)境配置
先通過(guò)路由器將四臺(tái)PC機(jī)連成局域網(wǎng),然后通過(guò)Matlab在局域網(wǎng)搭建PC機(jī)群并行系統(tǒng)。在Matalb 2009b測(cè)試局域網(wǎng)及相關(guān)服務(wù)的連通性及配置PC機(jī)群。最后配置并行環(huán)境,Matalb的Parall菜單中Manager Configuration新建Job Manager配置,在Scheduler輸入Job Manager名和所從屬主機(jī)名,所選Job Manager必須是Admin center中已創(chuàng)建的,在jobs菜單下,輸入job計(jì)劃使用Worker的最大最小數(shù)目,設(shè)置完成之后,全部測(cè)試通過(guò)如圖2,在窗口下放所有項(xiàng)顯示為“passed”。
2 并行計(jì)算實(shí)例
首先通過(guò)Job Manager傳輸代碼:set(job, 'FileDependencies',{'fun1.m','fun2.m','main.m'})其次設(shè)置文件關(guān)聯(lián),讓W(xué)orker node訪問(wèn)網(wǎng)絡(luò)文件和本地文件set(job, 'PathDependencies',{'\\ip\sharedir\','/mnt/'})接著使用Configurations Manager設(shè)置.在matlab的菜單欄上選擇Parallel->Manage Configurations...,啟動(dòng)Configurations Manager,設(shè)置jobmanager的屬性(Properties...)
以簡(jiǎn)單實(shí)例測(cè)試PC機(jī)群并行計(jì)算環(huán)境的可行性,例求2+4,5+8和1+7的和,在PC機(jī)群并行計(jì)算環(huán)境2+4,5+8和1+7可分別由三臺(tái)電腦獨(dú)立完成,再由服務(wù)器將各電腦求得的值匯總后再計(jì)算如圖3。具體操作如下:
⑴資源查找,創(chuàng)建對(duì)象:jm=findResource('scheduler', 'type','jobmanager','name','myjobmanager',…‘LookupURL, ‘node5);需要修改的是有下劃線參數(shù),第一個(gè)即前面jobmanager的名字,第二個(gè)即本地主機(jī)的名字;
⑵創(chuàng)建工作,并將該工作所需的數(shù)據(jù)、程序發(fā)到各個(gè)worker處.job1=createJob(jm);%工作名為job1.
set(job1,‘FileDependencies{‘bb1.m,‘bb2.m,‘bb3.m,…'W_FDJ1.mat','W_FDJ2.mat','W_FDJ3.mat'}) 注:set()函數(shù)就是將該工作所需的數(shù)據(jù)、程序發(fā)到各個(gè)worker處,本程序不需要用到;
⑶創(chuàng)建任務(wù)createTask(job1,@sum,1,{2,4}); createTask(job1,@sum,1,{5,8});createTask(job1,@sum,1, {1,7}).為job1創(chuàng)建了3個(gè)任務(wù),@sum代表函數(shù)頭,1代表返回參數(shù)個(gè)數(shù),此處為1個(gè),{2,4}代表函數(shù)sum的輸入?yún)?shù)。
3 結(jié)束語(yǔ)
本文針對(duì)以Matlab軟件為基礎(chǔ)的并行環(huán)境的構(gòu)建.給出了構(gòu)建并行環(huán)境的搭建過(guò)程,并進(jìn)行了優(yōu)劣對(duì)比。對(duì)于本科院校開(kāi)設(shè)《并行算法設(shè)計(jì)》課程教學(xué)有所幫助,在計(jì)算機(jī)實(shí)驗(yàn)室內(nèi)搭建并行系統(tǒng),有利于對(duì)并行算法的驗(yàn)證以及對(duì)并行算法進(jìn)行研究。
[參考文獻(xiàn)]
[1]百度百科.并行計(jì)算簡(jiǎn)介[DB/OL].http://baike.baidu.com/view/1666.htm,2012-3.
[2]百度百科.Windows環(huán)境下的Matlab并行機(jī)群計(jì)算配置及應(yīng)用[DB/OL].http://wenku.baidu.com/view/f042ee4ecf84b9d528ea7a5a.html.
[3]陳國(guó)良,等.并行算法實(shí)踐[M].北京:高等教育出版社,2004:4-25.