matlab并行计算 linux,MATLAB并行计算工具箱 -- Parallel Computing Toolbox的使用
龙泉居士基于文档原创,转载请注明
Parallel Computing Toolbox是一个matlab2011开始提供的组件,用于提供交互式的并行计算功能
一、运用的场合
很多应用程序中包含多个重复的代码部分,这些代码可能有多次循环迭代,也可能只有少量的循环迭代,但他们只是重复次数与输入参数的区别,对于处理这样的数据,并行计算是一个理想的方法,并行循环的唯一限制是每个循环间没有相互的依赖关系
当然,对于相互依赖的程序代码,也有可以实现并行计算的技巧
对于MATLAB,你可以选择运行一个庞大的批处理程序,也可以选择将他们拆分成多个任务由多个远程的计算机并行地执行,那将会极大的增加运行效率
同时,如果要处理的数据过于庞大,并行计算的性能也将明显优于异步的计算与处理
二、并行计算方案简介
交互运行一个循环程序
在这个例子中,我们只是要学习怎么将一个简单的for循环程序变成一个并行执行的程序,for循环中处理的数据量以及for循环的迭代次数都是很小的,因此,很难在这个例子中体现出并行计算的效率优势
1、假设你的代码中包含下面一个显示正弦波形的for循环:
for i=1:1024
A(i) = sin(i*2*pi/1024);
end
plot(A)
2、为了能够使用matlab提供的交互式工具,你需要首先打开matlabpool,这个组件可以运行在你的本地计算机上,也可以运行在多个远程计算机上
matlabpool open local 3
3、在matlabpool上,通过使用parfor关键字,你可以将你的代码修改为并行运行的程序:
parfor i=1:1024
A(i) = sin(i*2*pi/1024);
end
plot(A)
4、当程序运行结束,我们要使用下面一条指令关闭matlabpool,并且释放被占用的处理器或
两段代码唯一的区别是将关键字由for变为了parfor,而两段代码的执行结果也是极其相似的
但是,因为这个程序中,每次循环迭代都只是参数不同,之间并没有依赖关系,因此,每次迭代并不一定运行于同一个处理器上,通过parfor关键字声明,每一个迭代可能在多个处理器或多个计算机上并行执行,但并没有任何保证执行顺序的技术,因此,A(900)可能在A(400)之前运行
运行一个批处理作业(batch job)
首先,先介绍一下matlab中的批处理作业的概念,使用批处理命令可以让matlab分担某个任务一段时间,下面是一个for循环的例子
1、首先使用下面的命令创建一个脚本
edit mywave
2、在 MATLAB Editor 中键入下面的代码,完成for循环显示函数
for i=1:1024
A(i) = sin(i*2*pi/1024);
end
3、保存并关闭 MATLAB Editor
4、在Matlab命令窗口中输入批处理命令来让脚本在单独的Matlab工作间中执行
job = batch('mywave')
5、batch命令不会阻塞matlab,所以你必须等待工作的完成然后去查看他的结果
wait(job)
6、使用load命令可以把工作间中的变量传输到客户端前
load(job, 'A')
plot(A)
7、工作完成后,要记得调用下面的命令清除数据
destroy(job)
上面的代码将matlab的工作间与客户端之间相分开,很大的提高了效率
运行一个交互的批处理作业(batch job)
下面的例子将上面的两个例子结合在一起,完成parfor的batch job
1、在MATLAB Editor中编辑你的脚本
edit mywave
2、如下修改你的脚本
parfor i=1:1024
A(i) = sin(i*2*pi/1024);
end
3、保存并退出MATLAB Editor
4、和前面一样,我们运行这个脚本,但是这一次我们要使用一个MATLAB pool 来运行这个脚本
job = batch('mywave', 'matlabpool', 3)
5、和之前一样,我们要去查看结果需要执行下面的代码
wait(job)
load(job, 'A')
plot(A)
6、工作完成后,要记得调用下面的命令清除数据
destroy(job)
上面的这段代码将一个批处理工作分给了三个不同的工作间来协作完成
matlab并行计算 linux,MATLAB并行计算工具箱 -- Parallel Computing Toolbox的使用相关推荐
- [并行计算]Matlab并行计算工具箱(Parallel Computing Toolbox)官方文档教程中文版(1)
Arranged By Zhonglihao @ 2018 **请确认Matlab安装时点选了并行计算工具箱 第一章:parfor循环并行计算 parfor循环介绍 parfor循环是Matlab并行 ...
- Matlab中提供了符号计算工具箱(Symbolic Math Toolbox),可以进行符号运算
Matlab中提供了符号计算工具箱(Symbolic Math Toolbox),可以进行符号运算.以下是一些常见的符号运算示例: 定义符号变量 要定义一个符号变量,可以使用 syms 函数.例如,要 ...
- 并行计算教程简介 Introduction to Parallel Computing Tutorial
并行计算简介 (对网上翻译文章再进行整理,可能存在些问题,请参考原贴) 1 摘要 最近项目需要实现程序的并行化,刚好借着翻译这篇帖子的机会,了解和熟悉并行计算的基本概念和程序设计.帖子的原文见这里,原 ...
- matlab 2010 linux,matlab 2010a linux 安装过程
matlab安装过程还是比较简单的,环境:fedora 12 x86_64 matlab for unix 2010a 下面是具体的方法: 第一步:下载光盘镜像, 下载地址:ed2k://|fil ...
- matlab中英文对照表,Matlab工具箱中英文对照
Matlab工具箱中英文对照 Matlab2010工具箱中英文对照 matlab distributed computing server 分布式计算服务器 simulink 仿真 aerospace ...
- matlab常用术语,MATLAB并行计算术语之间的区别
实验室和工作人员是MathWorks术语,他们的意思大致相同. 实验室或工人本质上是MATLAB的一个实例(没有前端).您可以运行其中的几个,并且可以在您自己的计算机上运行它们(仅需要Parallel ...
- matlab 并行计算 自动关闭,Matlab 的并行计算
1.并行计算 以下对并行计算的个人理解受到较多质疑,删除之. ~~1.并行计算是指将计算任务分成几块,分别让多个 CPU 同时跑,这样运行时间就能缩短若干倍.在一个多核的电脑上,要想看计算是不是并行的 ...
- 【Matlab】关于matlab开启多核并行计算时SPMD测试失败的解决方法
从官方网站找到了解决方法 根据操作一步步排除(当然要先把Parallel Computing Toolbox给装上): 确保证书可用 在matlab命令行中输入: license checkout D ...
- matlab在Linux 环境下的安装激活
准备: 系统是debian wheezy 下载这三个文件: http://pan.baidu.com/s/1dDJhu5j 连接失效请Q我 修改iso文件: 用~crack压缩包里的instal ...
最新文章
- 牛客网:为什么不能将实数作为 HashMap 的 key?
- 将DataTable中的数据导入到数据库中
- HTML5 details 标签
- 1gitolite构建git服务器
- 社交网络图中结点的“重要性“计算(Dijkstra + SPFA + Floyd + 模板)
- 使用Docker快速搭建Tensorflow开发环境
- php 字符串混合分割并存入数组
- 95-872-040-源码-CEP-CEP简介
- 在C#中动态地添加控件
- 欢迎北京超图加入openGauss社区
- 学校计算机网络管理员面试,网络管理员面试题及答案
- SQL之CASE WHEN用法详解
- RTI_DDS自定义插件开发 9 API NDDS_Transport_Unshare_RecvResource_Fcn_rrEA
- matlab 水滴落水图,canvas 水滴图、液体进度条、仿加速球、圆球水波图
- 微积分导论--Continuity
- 关于在递归中删除链表结点不会导致链表断链的理解
- 【组织架构】中国铁路郑州局集团有限公司
- mysql分布式如何实现原理_mysql分布式集群实现原理
- Java的故事(猫与老鼠)
- 逆向工程实验Lab0
热门文章
- 关于oauth 2.0和单点登录
- CSS 的“层”峦“叠”翠 - 一文掌握z-index用法​​​​​​​
- Android默认优先使用WPS打开PDF文档
- moto z2 force ATT版升级至8.0教程
- 互联网+医疗(FW)
- 因为一双鞋,阿里程序员相亲被拒
- 笔记本电脑开始栏通知栏打不开
- python实现谱聚类算法
- Perforce (P4)版本控制使用指南
- 广义表的广度(长度)和深度的计算