MATLAB集群技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
②创建工作,并将该工作所需的数据、程序发到各个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处,本程序不需要用到。
Scheduler项,①LookupURL处填写所用计算机的名称,如node5;②Name 项为自拟的jobmanager的名称,如myjobmanager Jobs项,Number of Workers处表示该jobmanager运行并行程序时需要最小 worker数目(即≥最小worker数目才执行),以及该jobmanager可拥有的 最大worker数目;
12
MATLAB并行程序示例
%%程序功能,并行计算求2+4,5+8,1+7的和。 ①资源查找,创建对象。 jm = findResource('scheduler', 'type', 'jobmanager', 'name', 'myjobmanager',… ‘LookupURL’, ‘node5’); 需要修改的是红色划线参数,第一个即前面jobmanager的名字,第二个 即本地主机的名字
完善资料,合 法经营。
3. 点击OK,完成配置。
9
MATLAB并行平台搭建(三)
打开jobmanager 命令行下输入: startjobmanager –name myjobmanager
[即前面配置时的名字]
正式登场!
附:关闭jobmanager stopjobmanager –name myjobmanager
① 资源查找,创建对象;
② 创建工作(job);
findResource() createJob() createTask() submit()
③ 指定工作任务(task);
④ 提交工作; ⑤ 等待; ⑥ 返回计算任务结果。
waitForState()
getAllOutputArguments()
程序结构和相关函数调用
完整程序如下
14
实验室MATLAB集群平台
主机 node5 ×4 node1 ×4
node2
×4
node3
×4
node4
×4
实验室MATLAB集群平台示意图
16
The end
17
4
MATLAB R2009b的安装及启动(一)
• 安装时注意,MDCS,License Manager,并行计算工具箱 Parallel Computing Toolbox等为必装的产品和工具箱,(子 节点机可不用装License Manager)如下图所示。
5
MATLAB R2009b的安装及启动(二)
Matlab集群Leabharlann Baidu术
1
Windows环境下的分布式并行计算平 台搭建
MATLAB并行平台底层架构 MATLAB并行平台搭建 并行程序的编写与实例 实验室MATLAB并行集群
2
MATLAB并行平台底层架构(一)
并行平台上的三种角色 “警察”:维护整个平台。 (mdce:底层维护和通信进程) 我负责维护整个 并行平台
• 装好软件在启动之前,双击主节点机的matlabroot\flexlm 文件夹下的lmtool.exe(matlabroot表示matlab软件的安装 目录),开启Matlab License Server,如下图。
6
MATLAB并行平台搭建(一)
• 关闭防火墙 • 为方便平台搭建, 将目录 matlabroot\toolbo x\distcomp\bin添 加到环境变量中 的path里边,如 右图设置。
“老板”:接任务,雇佣工人并分配任务。 (jobmanager:负责对计算机资源的管理, 接收用户发过来的并行计算任务。)
接生意咯,客 户要什么我就 叫工人搞定它。
“工人”:努力工作。 (worker:工作进程)
听老板的话, 努力干活!
3
MATLAB并行平台底层架构(二)
MATLAB并行平台底层架构图
13
MATLAB并行程序示例
④提交工作 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)
注意:①可开启多个不同名字的worker进程; ② 若在本地上创建则不需后面的-remotehost node1。
我聘请 你。
好。
附:关闭worker 进程:
stopworker–name worker1 –remotehost node1
平台搭建完毕!可用nodestatus指令查看。
11
MATLAB并行程序编写
7
MATLAB并行平台搭建(二)
安装和开启mdce(分布式计算引擎)
运行->cmd
安装mdce: mdce install 开启mdce: mdce start 注意:mdce安装后会下次开机自动启动
警察来了!
8
MATLAB并行平台搭建(三)
配置jobmanager 1. 打开matlab软件,菜单选Parallel>Manage Configurations,弹出对话框; 2. File>new>jobmanager,弹出对话框:
10
MATLAB并行平台搭建(四)
创建worker进程(雇佣工人)
同样在命令行下输入: startworker –jobmanagerhost node5 –jobmanager myjobmanager –name worker1 –remotehost node1 node5:本地计算机名字 myjobmanager:jobmanager的名字 worker1:worker进程的名字 node1:远程计算机的名字
③创建任务 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的输入参数。