




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Matlab集群搭建及使用指南既0人收藏此文章,Q我要收藏發表于7個月前(2013-01-1509:27),已有232次閱讀,共0個評論/support/product/DM/installation/vercurrent/?scid=pidcpiR2012binstallingandConfiguringParallelComputingToolboxandMATLABDistributedComputingServer(R2012b)ParallelComputingwithMATLABParallelcomputingwithMATLABonaclusterrequirestwoproducts:ParallelComputingToolbox(formerlyDistributedComputingToolbox)shouldbeinstalledonthecomputerwhereyouwriteyourapplications.MATLABDistributedComputingServer(formerlyMATLABDistributedComputingEngine)shouldbeinstalledoneachcomputeroftheclusterthatperformsthecomputation.TheinstallationandsetupinstructionsforMATLABDistributedComputingServerareavailableintwoformats:?HTML
PDF(seethe“Productinstallation"chapter)Readthesystemrequirementsfortheseproductsbeforeproceeding.Single-MachineSetuplusterForsetuponasinglemachinewithoutaseparatecluster,youcanusethelocalcincludedwithParallelComputingToolboxtorunasmanyas12workersonasingleMATLABclientmachine.ThislocalclusterdoesnotrequireaseparatejobschedulerorMATLABDistributedComputingServer,sotheseinstructionsarenotnecessary.lusterIfyouwanttorunmorethan12workersonasinglemachine,installtheMATLABDistributedComputingServerasoutlinedintheinstructions,installingandrunningeverythingonthesamemachine.InstallingOtherVersionsInstallingandConfiguringToinstallotherversionsoftheseproducts,seeinstructionsonOtherVersionsLicensing
eandaFileToinstallandconfiguretheseproducts,youmusthaveanactivatedLicenseFilInstallationKey,whichyoudownloadfromtheLicenseCenterattheappropriatetimeintheinstallationprocedure.PleasecontactInstallationSupportifyourequireassistance.InstallingandConfiguringeandaFileGettingHelpIfyouhavequestionsatanypointintheinstallationandconfiguration,contacttheMathWorksinstallsupportteamat1-508-647-7000,orvisitthesupportWebsite./wiki/index.php?title=Matlab%E9%9B%86%E7%BE%A4%E6%90%AD%E5%BB%BA%E5%8F%8A%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97&oldid=406目錄[隱藏]?1分布式計算環境介紹1.1并行計算工具箱(ParallelComputingToolbox)?1.2分布式計算引擎(服務器)(MDCE)?1.3集群架構?2集群搭建?2.1LicenseManager安裝?2.2分布式計算引擎(MDCE)安裝2.3調度程序(JobManager)禾口worknode啟動酉己置2.4文件共享設置
分布式計算3編寫并行應用程序環境介紹3.1任務級并行并行計算工具3.2代碼級并行箱(Parallel4存在問題及擴展Computing5Matlab資源Toolbox)6外部鏈接并行計算工具箱(ParallelComputingToolbox)可以在多處理器計算環境中使用MATLAB和Simulink解決計算、數據密集型問題。使用工具箱可以解決通過裝配多個處理器包含幾個單獨工作單位或單個大型計算的問題。這些處理器可以駐留在一個多處理器計算機上,當工具箱配合MATLAB分布式計算引擎(MATLABDistributedComputingEngine(Server),簡稱MDCE)時,實現分布式并行計算。利用并行計算工具箱(ParallelComputingToolbox),可在多核和多處理器計算機上使用MATLAB和Simulink來解決計算問題和數據密集型問題。并行處理結構包括并行for循環和代碼塊、分布式數組、并行數值算法,以及消息傳遞函數等,并以較高的級別在MATLAB中執行任務及數據并行算法,而無需為特定的硬件和網絡架構編寫程序。這樣,將串行MATLAB應用程序轉換為并行MATLAB應用程序,便幾乎不需要修改代碼,且不需要使用低級語言編寫程序。用戶可以使用工具箱在單個多核或多處理器桌面上執行應用程序。無需更改代碼,即可在計算機集群上運行同一個應用程序(使用MATLABDistributedComputingServer)。并行的MATLAB應用程序可以作為可執行程序或共享庫(用MATLABCompiler構建)分發,這些可執行程序或共享庫可以訪問MATLABDistributedComputingServer。分布式計算引擎(服務器)(MDCE)MATLABDistributedComputingEngine可以使并行計算工具箱應用程序得到擴展,從而可以使用運行在任意數量計算機上的任意數量的worker。MDCE是以服務的形式運行在所有workernode節點上,接受來自調度程序的作業,在節點上建立進程,解釋執行Matlab代碼,將結果返回給調度程序。?調度程序(JobScheduler)MATLABDistributedComputingEngine支持多個調度程序:MathWorks作業管理器(JobManager)(隨產品提供)或任何其他第三方調度程序,例如PlatformLSF、MicrosoftWindowsComputeClusterServer(CCS)、AltairPBSPro,以及TORQUE。?許可證策略(LicensePolicy)MATLABDistributedComputingEngine會在應用程序運行時在基于用戶配置文件的集群上動態啟用所需的許可證。這樣,管理員便只需在集群上管理一個服務器許可證,而無需針對每位集群用戶在集群上管理單獨的工具箱和模塊集許可證。?Matlab作業任務會話定義作業(Job)是在MATLAB中大量的操作運算。一個作業可以分解不同的部分稱為任務(Task),客戶可以決定如何更好的劃分任務,各任務可以相同也可以不同。MALAB中定義并建立作業及其任務的會話(Session)被稱為客戶端會話,通常這是在你用來編寫程序那臺機器上進行的。客戶端用并行計算工具箱來定義和建立作業及其任務,MDCE通過計算各個任務來執行作業并負責把結果返回客戶端。作業管理器(JobManager)是MDCE的一個組成部分,用來協調各個作業及其任務在各個woker上的執行。集群架構分布計算,指的是一項工作(Job)中的若干任務(Task)是獨立的,任務與任務之間不存在數據交換,因此多個相似的任務(例如播紋匹配)可以同時運行在不局的數據集上。該系統中有三種角色,分別為提交Job(并將Job分割為多個Tasks)的Client,管理Job運行的JobManager(JM)和進行具體運算的Worker。Client就是編寫程序的機器,可以是任何一臺局域網內的機器,Client將寫好的程序作為Job提交到JM,然后JM(也可以是任何一臺局域網內的機器)按接收到Job的順序執行這些Job。每個Worker從JM那里接收Task并執行,完成之后將結果返回給JM,接下來接收下一個Task。當前正在運行的Job分配完成之后,JM則開始下一Job的分配。在一個分布計算系統中通常包括多個Wroker,以便同時執行多個Task,以提高速度。對Client來說,具體哪一個Task由哪一個Worker執行是透明的。也就是說,使用者只需關心如何將Job提交到JM和從JM取回運算結果,而無需管理具體的任務調度。LicenseManager安裝
使用MDCE引擎建立集群,需要獲得Mathworks公司的授權。LicenceManager可以通過Network方式下安裝,在standalone方式下安裝是沒有的。在一個集群中只要一個Node安裝LicenseManager,其它節點就可以獲得授權。?安裝參考選擇network安裝choose"installmanuallywithoutusingtheinternet"enterthe"fileinstallationkey"xxxxx-xxxxx-xxxxx-xxxxx-xxxxxcheckout"licensemanager"optionuse"licenseserver.dat"whenaskedforlicensefile?啟動參考WindowsPlatform以管理員模式運行$MATLABROOT$/flexlm/lmtools.exe選擇Start/StopReread標簽,單擊StartServerLinux&UnixPlatform在$MATLAB$/etc/license.dat中有SERVER^欄,后面填入yourhostname將licenseserver的端口設置成27000設置DAEMONMLM為DAEMONMLM$MATLAB$/etc/lm_matlab設置OPTIONS=$MATLAB$/etc/lmopts.sh用普通用戶運行./lmstart,開啟LicenseManager分布式^W引V(MDCE)安裝安裝啟動MDCE?WindowsPlatform
用管理員啟動cmd.exe,cd%MATLABROOT%/toolbox/distcomp/bin修改mdce_def.bat,設置MDCEUSER=./%username%,%username%是你的登入帳號運彳亍mdce.batinstall,輸入帳號密碼運行mdce.batstart,啟動MatalbDistributedComputingServerWIN+R,輸入services.msc,查看MDCS是否啟動運行addMatlabToWindowsFirewall.bat,配置防火墻,開放MDCE服務說明windows服務默認LocalSystem帳號啟動,用LocalSystem啟動的服務是沒有權限訪問UNC(UniversalNamingConvention)命名約定的網絡資源,UNC格式為\\servername[serverIP]\sharename\directory\filename。MDCE中傳輸和共享文件都是使用UNC命名約定,因此要使MDCE支持文件共享,啟動它的用戶需要有權限訪問UNC網絡資源。為了配置方便,用登入帳號啟動MDCE服務,就可以訪問共享資源。Linux&UnixPlatform$cd$MATLABROOT$/toolbox/distcomp/bin#./mdceinstall#./mdcestartconfigiptables,makeinputchainportstcp(135,139,445)andudp(137,138)open說明在UNIXLIKE的系統中mdce是以ROOT身份啟動的,可以輕松訪問UNC格式的網絡資源。DNS設置MDCE引擎使用機器名(hostname)在各個節點之間通信。為了能夠正確解析集群中所有的node,需要在各個node的hosts文件中添加集群中所有機器的ip和hostname的映射條目。調度程序(JobManager)和worknode啟動配置?啟動JobManager在集群中所有的提交的Job都是通過JobManager分配和管理的,所有的worknode都是注冊在JobManager這臺機器上,需要固定這臺JobManager主機。client端編寫完任務就可以向這臺JobManager這臺主機提交。MDCE支持當前所有主流的作業調度程序如LSF,CCS,PBSPro等。作為實驗性的環境,第三方調度程序沒有配置,而是采用了隨MDCE一起發布的JobManager來管理集群中的作業調度。表3一3啟說JobManager相應flags標記flags糠記對應操作-name<job_manager_nanie>蛤開啟的JobManager指定上個名禰-remotehost<hosmame>指定Jobmanager運荷的主機名-cieaii冊除所啟劫的.Jobmanager在不蔻盤上的檢查點信息-multicast多點傳播,一殷不推薦使用-basep&rt<portnumber>指定mice服務在主機上的基曰,默認是華仰-VVerbo'semod乾.顯示命1令■技i行過程信息啟動WorkerNodestartworker-jobmanagerhostjmip-jobmanagerjmname-nameworker_name-remotehostlocalip
表3.4啟劫worker相應fI&昉標記flags標記對應操作-name<\vorkernaine>給開啟的worker指定上個.名禰-remotehosE<hostname>指定worker的主機名,默認是本機-jobmanager<job_manag?r_name>指定本worker接受任券的Jcibmanager名稱-jobmanagerhost<iob_marLa^er_hostname>指定Jobmanager運彳?亍所在的主機名-dean朋除與本worker相關的檢查點信息-multicast多.點傳播,一般不推薦使用-baseport<port_number>指定Ed喝服務在主機上的基口-VVerbosemode^顯示帝■冷■技行過程信息?,查看集群節點信息nodestatus-remotehosthostname[ip]-infolevelnFlagOperation-remotehostDisplaysthestatusofthemdceserviceandtheprocessesit<hostname>maintainsonthespecifiedhost.Thedefaultvalueisthelocalhost.Specifieshowmuchstatusinformationtoreport,usingalevelof1-3.-infolevel<level>1meansonlythebasicinformation,3meansallinformationavailable.Thedefaultvalueis1.-vVerbosemodedisplaystheprogressofthecommandexecution.文件共享設■在一個集群內網絡中主要有三種流■,代碼,數據,運行時通信。在Matlab集群中,運行時通信對于Client是透明的,用戶需要設置的是如何共享代碼和數據。代碼可以通過JobManager傳輸到各個節點上,代碼的大小相對來說比較小,網絡傳輸開銷小,而對于數據來說,不可能把數據在每一個Workernode節點上都復制一份拷貝,這樣開銷太多了。通過JobManager傳輸代碼set(job,'FileDependencies',{'fun1.m','fun2.m','main.m'})設置文件關聯,讓Workernode訪問網絡文件和本地文件set(job,'PathDependencies',{'\\ip\sharedir\','/mnt/'})使用ConfigurationsManager設置ConfigurationsManager是Matlab中提供的圖形化配置管理軟件,使用此功能可以方便地配置常用的JobManager,而不用每次運行都在代碼中加入set函數。在matlab的菜單欄上選擇Parallel->ManageConfigurations...,啟動ConfigurationsManager,設置jobmanager的屬性(Properties...)
在我們的集群中大多數是基于Windows的系統,采用windows的共享文件機制就可以在各個windows系統間實現文件的共享。對于linux節點,就需要安裝samba,然后將網絡文件mount到local路徑。windows系統間實現文件的共享。Windows共享文件設置Linux&Unix共享文件設置安裝參考:[Sambawiki]掛載Windows共享文件#mount—tsmbfs//ip/share/mnt/提供本機文件共享,samba設置[global]
|security=share[sharedir]???public=yes編寫并行應用程序任務級并行流程搜索JM,創建對象:findResource()%MyJobManager表示JM的名字%MyJMhost表示運行該JM的主機名或IP地址jm=findResource('scheduler','type','jobmanager','Name','MyJobManager','LookupURL','MyJMhost')使用findResource函數時,省略所有property和value,可搜索所有局域網內可用的JMall_managers=findResource('scheduler','type','jobmanager')創建Job:createJob()雖然這個函數在client會話中執行,但實際上是在名叫jm的JobManager上創建了一個名叫job1的Jobjob=createJob(jm)分配Task:createTask()在創建Job之后,使用createTask函數為該Job創建Task。Task定義了Worker所要執行的函數。在本例中,每個Task將會生成3*3的隨機數矩陣。createTask(job,@rand,1,{3,3});
createTask(job,@rand,1,{3,3});createTask(job,@rand,1,{3,3});createTask(job,@rand,1,{3,3});createTask(job,@rand,1,{3,3});也可用以下方法生成5個Task:T=createTask(job,@rand,1,{{3,3}{3,3}{3,3}{3,3}{3,3}});提交工作:submit()使用submit函數提交Job到JobManager,JobManager將Task分配到已注冊的Worker上并開始執行。submit(job);等待:waitForState()waitForState(job,'finished');取回計算結果:getAllOutputArguments()計算結果存儲在每個任務對象的OutputArguments屬性中,使用getAllOutputArguments取回所有的結果,運算結果以cell數組的形式返回。results=getAllOutputArguments(job);完整示例clearall;%尋找資源。jm=findResource('scheduler','type','jobmanager','name','myJM','LookupURL','00');%使用剛才找到的資源建立一個工作job=createJob(jm);%設置該工作的文件關聯,讓所有workers都可以找到原程序文件,需要在Client上設置共享文件夾。set(job,'PathDependencies',{'\\01\matlab_code\','/mnt/'})
%另一種方法,把用到的原程序文件傳給所有workers。%set(job,'FileDependencies',{'hm.m'});N=5;M=4;%建立4個任務,每任務都是算hp(M,N)。createTask(job,@hp,1,{{M,N},{M,N},{M,N},{M,N}});%提交工作給jobmanagerosubmit(job)%等待所有workers都
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025非本地戶籍務工人員就業合同
- 2025租房土地租賃合同范本
- 2025餐飲公司勞動合同書范本
- 2025版FIDIC施工合同條件
- 2024年高性能玻璃微珠項目資金籌措計劃書
- 2025廣告公司合同樣本
- 2025勞動合同匯編范本
- 2025解除勞動合同通知書范文「不續約」
- 《中醫調理肺癌》課件
- 2025年北京市裝飾裝修合同
- Q∕GDW 11698-2017 水電站金屬結構無損檢測技術規范
- 6G項目實施方案參考模板
- (高清正版)T-CAGHP 031—2018 地質災害危險性評估及咨詢評估預算標準(試行)
- 產品平臺與CBB_技術管理PPT課件
- 裝配式疊合板樓板安裝施工方案
- 肌筋膜鏈與脊柱穩定簡述板
- 北京市中小學生天文知識競賽復習題庫
- GJB300797靜電標準doc
- SPC_8種判異準則
- 輸電線路安全文明施工方案
- 無機化學 第18章 氫和稀有氣體
評論
0/150
提交評論