MATLAB并行计算简介(是几个机子并行的)..

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Windows环境下的分布式并行计算平台搭建MATLAB并行平台底层架构MATLAB并行平台搭建并行程序的编写与实例实验室MATLAB并行集群1MATLAB并行平台底层架构(一)并行平台上的三种角色“警察”:维护整个平台。(mdce:底层维护和通信进程)“老板”:接任务,雇佣工人并分配任务。(jobmanager:负责对计算机资源的管理,接收用户发过来的并行计算任务。)“工人”:努力工作。(worker:工作进程)我负责维护整个并行平台接生意咯,客户要什么我就叫工人搞定它。听老板的话,努力干活!2MATLAB并行平台底层架构(二)MATLAB并行平台底层架构图3MATLABR2009b的安装及启动(一)•安装时注意,MDCS,LicenseManager,并行计算工具箱ParallelComputingToolbox等为必装的产品和工具箱,(子节点机可不用装LicenseManager)如下图所示。4MATLABR2009b的安装及启动(二)•装好软件在启动之前,双击主节点机的matlabroot\flexlm文件夹下的lmtool.exe(matlabroot表示matlab软件的安装目录),开启MatlabLicenseServer,如下图。5•关闭防火墙•为方便平台搭建,将目录matlabroot\toolbox\distcomp\bin添加到环境变量中的path里边,如右图设置。6MATLAB并行平台搭建(一)MATLAB并行平台搭建(二)安装和开启mdce(分布式计算引擎)运行-cmd安装mdce:mdceinstall开启mdce:mdcestart注意:mdce安装后会下次开机自动启动警察来了!7MATLAB并行平台搭建(三)配置jobmanager1.打开matlab软件,菜单选ParallelManageConfigurations,弹出对话框;2.Filenewjobmanager,弹出对话框:Scheduler项,①LookupURL处填写所用计算机的名称,如node5;②Name项为自拟的jobmanager的名称,如myjobmanagerJobs项,NumberofWorkers处表示该jobmanager运行并行程序时需要最小worker数目(即≥最小worker数目才执行),以及该jobmanager可拥有的最大worker数目;3.点击OK,完成配置。完善资料,合法经营。8MATLAB并行平台搭建(三)打开jobmanager命令行下输入:startjobmanager–namemyjobmanager[即前面配置时的名字]附:关闭jobmanagerstopjobmanager–namemyjobmanager正式登场!9MATLAB并行平台搭建(四)创建worker进程(雇佣工人)同样在命令行下输入:startworker–jobmanagerhostnode5–jobmanagermyjobmanager–nameworker1–remotehostnode1node5:本地计算机名字myjobmanager:jobmanager的名字worker1:worker进程的名字node1:远程计算机的名字注意:①可开启多个不同名字的worker进程;②若在本地上创建则不需后面的-remotehostnode1。附:关闭worker进程:stopworker–nameworker1–remotehostnode1我聘请你。好。平台搭建完毕!可用nodestatus指令查看。10MATLAB并行程序编写①资源查找,创建对象;②创建工作(job);③指定工作任务(task);④提交工作;⑤等待;⑥返回计算任务结果。findResource()createJob()createTask()submit()getAllOutputArguments()waitForState()程序结构和相关函数调用11MATLAB并行程序示例%%程序功能,并行计算求2+4,5+8,1+7的和。①资源查找,创建对象。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的输入参数。12④提交工作submit(job1);⑤等待waitForState(job1,'finished');⑥返回结果results=getAllOutputArguments(job1);其中results{1}代表任务1的结果,本程序则为6。(2+4)results{2}代表任务2的结果,本程序则为13。(5+8)results{3}代表任务3的结果,本程序则为8。(1+7)完整程序如下MATLAB并行程序示例13实验室MATLAB集群平台主机node5node1×4node2×4node3×4node4×4×4实验室MATLAB集群平台示意图15Theend16

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功