matlab并行计算实例,Matlab并行计算示例(一)
使用Matlab实现算法较为简单,但是涉及for循环时,效率比不上C++。对于一个多核处理器,不开多核并行计算,实在是对不住Matlab自带的并行计算功能。parfor循环较为简单,但是它对for循环中的变量要求比较严格,稍有不慎就会出错(我深受其害)。使用Matlab Toolbox中的createJob/createTask可以实现多线程的并行计算,其功能与C++中CreateThread类似。这样的并行计算对函数中的变量要求就没有那么严格。
Matlab 2010和2014的调用函数略有差异,下面列出分别列出一个示例。
1、Matlab 2010
slave_num = 2;
jm = findResource;
jm.DataLocation = './cache';
if ~isempty(jm.jobs)
destroy(jm.jobs)
end
if ~exist(jm.DataLocation, 'file')
mkdir(jm.DataLocation)
end
sub_list = cell(2, 1);
sub_list{1} = [2, 1];
sub_list{2} = [3, 4];
job = createJob(jm, 'PathDependencies', {jm.DataLocation});
for i = 1:slave_num
createTask(job, @min, 1, {sub_list(i)});
end
submit(job);
waitForState(job, 'finished');
destroy(job);
2、Matlab 2014
clear all,
close all,
clc,
slave_num = 2;
c = parcluster(); % Create cluster object
job = createJob(c);
sub_list = cell(2, 1);
sub_list{1} = [2, 1];
sub_list{2} = [3, 4];
for i = 1:slave_num
createTask(job, @min, 1, {sub_list(i)});
end
submit(job);
wait(job);
out = fetchOutputs(job);
上面两个示例实现的是同一个功能,即并行计算两个向量的最小元素。开头和最后的对象声明和结果提取使用的函数不同,中间创建任务的函数基本相同。对较少的任务,并不能节省很多时间,有时反而会增加时间开销;但是当任务较多时,并行计算就会体现出它的优势,充分利用多核CPU。
Matlab 博大精深,createJob/createTask只是Matlab并行计算中很小的一部分,还有诸如:parfor, batch, spmd, 这些还没有仔细研究过,有时间需要进一步深入学习。
【参考文献】:
官方文档:
matlab并行计算实例,Matlab并行计算示例(一)相关推荐
- matlab微分方程实例,Matlab常微分方程的解法
[实例简介] 和Matlab应用有关的,具体介绍常微分方程的使用和解法,原理性介绍,帮助理解. 局部截断误差指的是,按()式计算由到这一步的计算值与精确值 之差 +.为了估计它,由 展开得到的精确值 ...
- matlab 绘图 实例,MATLAB 绘图实例
代码+图片: 环境 : matlab r2012b 1 在0≤x≤2区间内,绘制曲线 y=2e-0.5xcos(4πx) 代码: x=0:pi/100:2*pi; y=2*exp(-0.5*x ...
- 最优控制问题matlab编程实例,matlab实现解决最优控制中的内点约束问题
问题 此问题出自Solving optimal control problems with MATLAB.pdf 此问题matlab实现程序 function er3OC_sym %EG3OC_sym ...
- matlab nlinfit实例,matlab nlinfit函数的应用例子
混凝土的抗压强度随养护时间的延长而增加,现将一批混凝土作成12个试块,记录了养护日期x(日)及抗压强度y(kg/cm2)的数据: 养护时间x 2 3 4 5 7 9 12 14 17 21 28 56 ...
- matlab图像合成实例,MATLAB图像合成及其实现
实用第一 智慧密集 ⋯︸⋯户 摘 要 论述 了图像合成的基本原理 , 并结合 实例应用 软件 实现 了图像的合成 . 关健词 图像合成 , , 图像 , 二值 图像 , 区域生长 一 . 引言 图像合 ...
- matlab充分利用性能,Matlab高性能编程——代码优化和并行计算
Jeremy Lin @HQU Update: 2014/4/29 Matlab代码优化 Matlab是一种高级计算机语言,同时也是一个用于算法开发,数据可视化,数据分析和数值计算的交互式工作环境. ...
- matlab 并行计算 自动关闭,Matlab 的并行计算
1.并行计算 以下对并行计算的个人理解受到较多质疑,删除之. ~~1.并行计算是指将计算任务分成几块,分别让多个 CPU 同时跑,这样运行时间就能缩短若干倍.在一个多核的电脑上,要想看计算是不是并行的 ...
- 【数字信号处理】线性常系数差分方程 ( 使用 matlab 求解 “ 线性常系数差分方程 “ 示例 | A 向量分析 | B 向量分析 | 输入序列分析 | matlab 代码 )
文章目录 一.使用 matlab 求解 " 线性常系数差分方程 " 示例 1.B 向量元素 : x(n) 参数 2.A 向量元素 : y(n) 参数 3.输入序列 4.matlab ...
- 秦九韶算法matlab程序,数值分析matlab程序实例.doc
数值分析matlab程序实例 1,秦九韶算法,求出P(x=3)=2+4x+5x^2+2x^3的值 clear?all; x=3; n=3; a(1)=2;a(2)=4;a(3)=5;a(4)=2 v( ...
最新文章
- 从0到1,苏宁API网关的演进之路
- 部署Symantec Antivirus 10.0网络防毒服务器之六
- Docker安装gogs git仓库
- JQuery:全选按钮的实现
- git 如何同步本地tag与远程tag
- Linux命令学习(三):文件操作命令(1)
- 【牛客 - 315F】美丽的项链(线性dp,递推,我为人人)
- vue 项目:文件夹 结构 、配置详解
- 计算机基础win7桌面操作,windows7基本操作方法(零基础的人教学)-win7教程
- 怎样利用商业智能软件实现业务目标
- idea配置Lua环境
- 面试中的排序算法总结
- .native.prevent是什么意思?
- dropout层加在哪里_Nomaomi
- 唐读笔记-正则表达式必知必会
- 单相交流调压电路matlab仿真,单相斩控式交流调压电路
- 运维必备规章制度:故障分级和处罚规范 – 运维派
- 多媒体——图片——从相册中选取图片
- you are an asshole
- Python 代码理解 polygon.py