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