Matlab并行程序设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Matlab并行程序设计

MATLAB并行程序设计    靖稳峰 2007.7.3 主要内容 1. MATLAB DCT 简介 2. MATLAB分布式计算 3. MATLAB并行计算 4. PMODE (Interactive Paralell Programming) MATLAB并行计算的特点 DCT分布式计算工作原理 (2) Evaluating Functions in a Cluster 3. MATLAB并行计算 计算π的例子 加速比、加速效率 4. pmode(Interactive Parallel Mode) Interactive Parallel Mode 如何充分利用计算智能实验室的计算资源 (1)单机计算 (2)Matlab并行计算 (3)MPI并行计算 (4)用户应用系统 (5) 注意事项 告别Windows计算时代,走进Linux计算世界! * * Parallel Programming with MATLAB 作用:在集群系统上进行并行程序设计,分布地或并行地运行MATLAB程序,从而加速大规模MATLAB程序的执行。 1. MATLAB DCT 简介 DCT (Distributed Computing Toolbox,分布式计算工具箱) DCT并行计算工作原理 DCT工作过程 DCT工作过程 1) 寻找一个job manager 2) 创建一个Job 3) 创建task(多个) 4) 将Job提交到队列 5) 返回计算结果 6) 删除对象 分布式计算步骤 (1)寻找一个scheduler (2)创建一个Parallel Job (3)创建task(一个) (4)提交Job (5)返回结果 (6)删除对象 Parallel Math 步骤 Distributed Job和Parallel Job的区别 Task同时运行,因此一个Job只能使用当时空闲的lab。如果没有足够可用的lab,Job开始时间有可能推迟。 Task不一定要同时执行。当某个worker空闲时,就向该worker发送一个task,因此在执行同一个job的过程中,一个worker可能运行多个task 只能在一个Job中创建一个task,当运行Parallel Job时,在所有的lab上同时执行这个task 可以在一个Job中创建任意多个task 将Matlab进程称为lab,执行task时各个进程存在通信 将Matlab进程称为worker,执行task时各个各个进程之间没有消息传递 Parallel Job Distributed Job 2. MATLAB分布式计算 (1) MATLAB客户端与job manager的结点相连接测试 1) 进入以下目录: cd /export/matlab2007a/toolbox/distcomp/bin 2)运行nodestatus来检查配置和网络连接。 nodestatus.sh –remotehost console 如果成功,用户应该能够看到job manager和job manager的worker的状态。否则,返回MATLAB分别是计算引擎系统管理员向导的一部分,这部分会给出如何解决当前问题的几种可能方法 (2)一个简单的分布式Job 1) 启动MATLAB,在MATLAB命令窗口,键入以下命令: jm=findResource(scheduler,type,jobmanager,name,myjobmanager,lookUpURL,console) 2) 创建一个job job = createJob(jm); 3) 创建任务 createTask(job,@sum,1,{[1 1]}); createTask(job,@sum,1,{[2 2]}); createTask(job,@sum,1,{[3 3]}); 4)提交job submit(job) 5) 等待完成 waitForState(job,finished) 6)收集结果 result = getAllOutputArguments(job) results = [2] [4] [6] 一个job,有多个由相同函数完成的任务,可使用 dfeval或defvalasync函数。 defval(@sum,{[1 1], [2 2], [3 3]},jobmanager,myjobmanager) job1=defvalasync(@sum,1,{[1 1], [2 2], [3 3]},jobmanager,myjobmanager) 必须用getAllOutputArguments

文档评论(0)

yurixiang1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档