《MATLAB并行計算簡介(是幾個機子并行的)》由會員分享,可在線閱讀,更多相關《MATLAB并行計算簡介(是幾個機子并行的)(16頁珍藏版)》請在裝配圖網上搜索。
1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,Windows,環(huán)境下的分布式并行計算平臺搭建,MATLAB,并行平臺底層架構,MATLAB,并行平臺搭建,并行程序的編寫與實例,實驗室,MATLAB,并行集群,1,MATLAB,并行平臺底層架構(一),并行平臺上的三種角色,“警察”:維護整個平臺。,(mdce,:底層維護和通信進程,),“老板”:接任務,雇傭工人并分配任務。,(,jobmanager,:負責對計算機資源的管理,,接收用戶發(fā)過來的并行計算任務。),“工人”:努力工作。,(,worker,:工作進程),我負責維護整個并行平臺,接生意咯,客
2、戶要什么我就叫工人搞定它。,聽老板的話,,努力干活!,2,MATLAB,并行平臺底層架構(二),MATLAB,并行平臺底層架構圖,3,MATLAB R2009b,的安裝及啟動(一),安裝時注意,,MDCS,,,License Manager,,并行計算工具箱,Parallel Computing Toolbox,等,為,必,裝,的產品和工具箱,,(子節(jié)點機可不用裝,License Manager,)如下圖所示。,4,MATLAB R2009b,的安裝及啟動(二),裝好軟件在啟動之前,,雙擊主節(jié)點機的,matlabrootflexlm,文件夾下的,lmtool.exe,(,matlabroot,
3、表示,matlab,軟件的安裝目錄),開啟,Matlab License Server,,如下圖。,5,關閉防火墻,為方便平臺搭建,將目錄,matlabroottoolboxdistcompbin,添加到環(huán)境變量中的,path,里邊,如右圖設置。,6,MATLAB,并行平臺搭建(一),MATLAB,并行平臺搭建(二),安裝和開啟,mdce,(分布式計算引擎),運行,-cmd,安裝,mdce:mdce install,開啟,mdce:mdce start,注意:,mdce,安裝后會下次開機自動啟動,警察來了!,7,MATLAB,并行平臺搭建(三),配置,jobmanager,打開,matlab,
4、軟件,菜單選,ParallelManage Configurations,,彈出對話框;,Filenewjobmanager,,彈出對話框:,Scheduler,項,,LookupURL,處填寫所用計算機的名稱,如,node5,;,Name,項為自擬的,jobmanager,的名稱,如,myjobmanager,Jobs,項,,Number of Workers,處表示該,jobmanager,運行并行程序時需要最小,worker,數目(即最小,worker,數目才執(zhí)行),以及該,jobmanager,可擁有的最大,worker,數目;,3.,點擊,OK,,完成配置。,完善資料,合法經營。,8
5、,MATLAB,并行平臺搭建(三),打開,jobmanager,命令行下輸入:,startjobmanager name,myjobmanager,即前面配置時的名字,附:關閉,jobmanager,stopjobmanager name myjobmanager,正式登場!,9,MATLAB,并行平臺搭建(四),創(chuàng)建,worker,進程,(,雇傭工人,),同樣在命令行下輸入:,startworker jobmanagerhost,node5,jobmanager,myjobmanager,name,worker1,remotehost,node1,node5:,本地計算機名字,myjobma
6、nager,:,jobmanager,的名字,worker1:worker,進程的名字,node1:,遠程計算機的名字,注意:可開啟多個不同名字的,worker,進程;,若在本地上創(chuàng)建則不需后面的,-remotehost node1,。,附:關閉,worker,進程:,stopworkername worker1 remotehost node1,我聘請你。,好。,平臺搭建完畢!可用,nodestatus,指令查看。,10,MATLAB,并行程序編寫,資源查找,創(chuàng)建對象;,創(chuàng)建工作(,job,);指定工作任務(,task,);提交工作;等待;返回計算任務結果。,findResource(),c
7、reateJob(),createTask(),submit(),getAllOutputArguments(),waitForState(),程序結構和相關函數調用,11,MATLAB,并行程序示例,%,程序功能,并行計算求,2+4,,,5+8,,,1+7,的和。,資源查找,創(chuàng)建對象。,jm=findResource(scheduler,type,jobmanager,name,myjobmanager,LookupURL,node5,);,需要修改的是紅色劃線參數,第一個即前面,jobmanager,的名字,第二個,即本地主機的名字,創(chuàng)建工作,并將該工作所需的數據、程序發(fā)到各個,worke
8、r,處。,job1=createJob(jm);%,工作名為,job1,%set(job1,FileDependencies,bb1.m,bb2.m,bb3.m,W_FDJ1.mat,W_FDJ2.mat,W_FDJ3.mat);,注:,set(),函數就是將該工作所需的數據、程序發(fā)到各個,worker,處,本程序不需要用到。,創(chuàng)建任務,createTask(job1,sum,1,2,4,);,createTask(job1,sum,1,5,8,);,createTask(job1,sum,1,1,7,);,為,job1,創(chuàng)建了,3,個任務,,sum,代表函數頭,,1,代表返回參數個數,此處為
9、,1,個,,2,4,代表函數,sum,的輸入參數。,12,提交工作,submit(job1);,等待,waitForState(job1,finished);,返回結果,results=getAllOutputArguments(job1);,其中,results1,代表任務,1,的結果,本程序則為,6,。,(2+4),results2,代表任務,2,的結果,本程序則為,13,。,(5+8),results3,代表任務,3,的結果,本程序則為,8,。,(1+7),完整程序如下,MATLAB,并行程序示例,13,實驗室,MATLAB,集群平臺,主機,node5,node1 4,node2 4,node3 4,node4 4,4,實驗室,MATLAB,集群平臺示意圖,15,The end,16,