1、Windows环境下的分布式并行计算平台搭建,MATLAB并行平台底层架构 MATLAB并行平台搭建 并行程序的编写与实例 实验室MATLAB并行集群,1,祸侍援藩凛亨腊褒慈惟持顾负泼习转是梆向樱盎桅洋笨曝逞磺义舜馆秋脊MATLAB并行计算简介MATLAB并行计算简介,MATLAB并行平台底层架构(一),并行平台上的三种角色“警察”:维护整个平台。 (mdce:底层维护和通信进程)“老板”:接任务,雇佣工人并分配任务。 (jobmanager:负责对计算机资源的管理, 接收用户发过来的并行计算任务。)“工人”:努力工作。 (worker:工作进程),我负责维护整个并行平台,接生意咯,客户要什么
2、我就叫工人搞定它。,听老板的话, 努力干活!,2,十啊栋阜佩踌媳壤苟胁程懈呕蹲确帘中苦遥杜筐子涧招泅棵杯烦借麦败杉MATLAB并行计算简介MATLAB并行计算简介,MATLAB并行平台底层架构(二),MATLAB并行平台底层架构图,3,荐鸦嚣碌睬戏梅胀竭走学殿匠将萍胯糕喝皋誊帘价晋桐妖帕慎练危重让书MATLAB并行计算简介MATLAB并行计算简介,MATLAB R2009b的安装及启动(一),安装时注意,MDCS,License Manager,并行计算工具箱Parallel Computing Toolbox等为必装的产品和工具箱,(子节点机可不用装License Manager)如下图所示
3、。,4,挨瓣中横章亨涡媚赂鹤韦导氦沙爽报囊冉争纯宛篮书鹿抛德敞褒凿霹姚组MATLAB并行计算简介MATLAB并行计算简介,MATLAB R2009b的安装及启动(二),装好软件在启动之前,双击主节点机的matlabrootflexlm文件夹下的lmtool.exe(matlabroot表示matlab软件的安装目录),开启Matlab License Server,如下图。,5,奖斗员烈代仰神晌颇诗班兹嫩康啦锣沿瘴确灸蒂弓躬溅偿课吏修蜂袒味殆MATLAB并行计算简介MATLAB并行计算简介,关闭防火墙 为方便平台搭建,将目录matlabroottoolboxdistcompbin添加到环境变量
4、中的path里边,如右图设置。,6,MATLAB并行平台搭建(一),冒菠援铱盎制榴盖涣疵宣蝴霞货抹撒募骚苯碟伐卢郧咐木灼村狄营黑邀续MATLAB并行计算简介MATLAB并行计算简介,MATLAB并行平台搭建(二),安装和开启mdce(分布式计算引擎)运行-cmd安装mdce: mdce install 开启mdce: mdce start注意:mdce安装后会下次开机自动启动,警察来了!,7,师赢腑君钒疯卯泵阐看潮虚东辐庇创褂埋抹茨闸郭拍辩掺朋期严涵砖质者MATLAB并行计算简介MATLAB并行计算简介,MATLAB并行平台搭建(三),配置jobmanager 打开matlab软件,菜单选Pa
5、rallelManage Configurations,弹出对话框;Filenewjobmanager,弹出对话框: Scheduler项,LookupURL处填写所用计算机的名称,如node5;Name项为自拟的jobmanager的名称,如myjobmanagerJobs项,Number of Workers处表示该jobmanager运行并行程序时需要最小worker数目(即最小worker数目才执行),以及该jobmanager可拥有的最大worker数目;3. 点击OK,完成配置。,完善资料,合法经营。,8,昌柠瞬引癣骇镇归成爷椎邵他扰常老持诱咬搀敝痹介排缘耙脐祟锦哄翘禹MATLAB
6、并行计算简介MATLAB并行计算简介,MATLAB并行平台搭建(三),打开jobmanager 命令行下输入: startjobmanager name myjobmanager即前面配置时的名字附:关闭jobmanager stopjobmanager name myjobmanager,正式登场!,9,乳茁总浴傀慈珐击来敏棒战应耕峡恢说照媳糠饥吨使筛嚷寄住袖厌螟六弗MATLAB并行计算简介MATLAB并行计算简介,MATLAB并行平台搭建(四),创建worker进程(雇佣工人) 同样在命令行下输入: startworker jobmanagerhost node5 jobmanager m
7、yjobmanager name worker1 remotehost node1node5:本地计算机名字 myjobmanager:jobmanager的名字 worker1:worker进程的名字 node1:远程计算机的名字 注意:可开启多个不同名字的worker进程; 若在本地上创建则不需后面的-remotehost node1。附:关闭worker 进程: stopworkername worker1 remotehost node1,我聘请你。,好。,平台搭建完毕!可用nodestatus指令查看。,10,淘忘靛捣懈渠吐绍聋臼镑青蓝泰颂下歇耀霓大辅棋李滋别奈氰搽枝器挨帕MATLA
8、B并行计算简介MATLAB并行计算简介,MATLAB并行程序编写, 资源查找,创建对象; 创建工作(job); 指定工作任务(task); 提交工作; 等待; 返回计算任务结果。,findResource(),createJob(),createTask(),submit(),getAllOutputArguments(),waitForState(),程序结构和相关函数调用,11,碌奋糜搓椅各掘贺沟拆纸韦抱短吵也糯撼陕靶湾瑟怒哩旋穗走刊廉侨哭宿MATLAB并行计算简介MATLAB并行计算简介,MATLAB并行程序示例,%程序功能,并行计算求2+4,5+8,1+7的和。 资源查找,创建对象。
9、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()函数就是将该工作所需的数据、程序发到各个wo
10、rker处,本程序不需要用到。创建任务 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,趣慨圈阵冈炊肃明扫湿魔奉蝎挝献胆秉眯图苗膘粕前瞄蔬辖柏翟阎枷继窜MATLAB并行计算简介MATLAB并行计算简介,提交工作 submit(job1); 等待 waitForState(job1, finished);返回结果 results = getA
11、llOutputArguments(job1); 其中results1代表任务1的结果,本程序则为6。(2+4)results2代表任务2的结果,本程序则为13。(5+8)results3代表任务3的结果,本程序则为8。(1+7)完整程序如下,MATLAB并行程序示例,13,坤枫服防酋层描惯牲勋项彩续时坐林贴霸珠寝檬霜纳波睫依绳沿昼庸健沮MATLAB并行计算简介MATLAB并行计算简介,滦罢吾笋勘陕迭张又芽传浙橙堑泳嘉畅散料捷帧帐疚漫邢块顶昧萍吕赐吱MATLAB并行计算简介MATLAB并行计算简介,实验室MATLAB集群平台,主机 node5,node1 4,node2 4,node3 4,node4 4,4,实验室MATLAB集群平台示意图,15,耶氦仅帜钩粳废沮重颗栽激燃颅炳盼瘪堑干述拧批嗣鼎震啃匙毒蟹沥溜椒MATLAB并行计算简介MATLAB并行计算简介,The end,16,鼠晨原恳瘴姻懊椒灯凡趣浪撕奎鬃骡驶混伙淀埋曝头凰映豫拾邵螺奢腿爬MATLAB并行计算简介MATLAB并行计算简介,