使用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并行计算示例(一)相关推荐

  1. matlab微分方程实例,Matlab常微分方程的解法

    [实例简介] 和Matlab应用有关的,具体介绍常微分方程的使用和解法,原理性介绍,帮助理解. 局部截断误差指的是,按()式计算由到这一步的计算值与精确值 之差 +.为了估计它,由 展开得到的精确值 ...

  2. 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 ...

  3. 最优控制问题matlab编程实例,matlab实现解决最优控制中的内点约束问题

    问题 此问题出自Solving optimal control problems with MATLAB.pdf 此问题matlab实现程序 function er3OC_sym %EG3OC_sym ...

  4. matlab nlinfit实例,matlab nlinfit函数的应用例子

    混凝土的抗压强度随养护时间的延长而增加,现将一批混凝土作成12个试块,记录了养护日期x(日)及抗压强度y(kg/cm2)的数据: 养护时间x 2 3 4 5 7 9 12 14 17 21 28 56 ...

  5. matlab图像合成实例,MATLAB图像合成及其实现

    实用第一 智慧密集 ⋯︸⋯户 摘 要 论述 了图像合成的基本原理 , 并结合 实例应用 软件 实现 了图像的合成 . 关健词 图像合成 , , 图像 , 二值 图像 , 区域生长 一 . 引言 图像合 ...

  6. matlab充分利用性能,Matlab高性能编程——代码优化和并行计算

    Jeremy Lin  @HQU Update: 2014/4/29 Matlab代码优化 Matlab是一种高级计算机语言,同时也是一个用于算法开发,数据可视化,数据分析和数值计算的交互式工作环境. ...

  7. matlab 并行计算 自动关闭,Matlab 的并行计算

    1.并行计算 以下对并行计算的个人理解受到较多质疑,删除之. ~~1.并行计算是指将计算任务分成几块,分别让多个 CPU 同时跑,这样运行时间就能缩短若干倍.在一个多核的电脑上,要想看计算是不是并行的 ...

  8. 【数字信号处理】线性常系数差分方程 ( 使用 matlab 求解 “ 线性常系数差分方程 “ 示例 | A 向量分析 | B 向量分析 | 输入序列分析 | matlab 代码 )

    文章目录 一.使用 matlab 求解 " 线性常系数差分方程 " 示例 1.B 向量元素 : x(n) 参数 2.A 向量元素 : y(n) 参数 3.输入序列 4.matlab ...

  9. 秦九韶算法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( ...

最新文章

  1. 从0到1,苏宁API网关的演进之路
  2. 部署Symantec Antivirus 10.0网络防毒服务器之六
  3. Docker安装gogs git仓库
  4. JQuery:全选按钮的实现
  5. git 如何同步本地tag与远程tag
  6. Linux命令学习(三):文件操作命令(1)
  7. 【牛客 - 315F】美丽的项链(线性dp,递推,我为人人)
  8. vue 项目:文件夹 结构 、配置详解
  9. 计算机基础win7桌面操作,windows7基本操作方法(零基础的人教学)-win7教程
  10. 怎样利用商业智能软件实现业务目标
  11. idea配置Lua环境
  12. 面试中的排序算法总结
  13. .native.prevent是什么意思?
  14. dropout层加在哪里_Nomaomi
  15. 唐读笔记-正则表达式必知必会
  16. 单相交流调压电路matlab仿真,单相斩控式交流调压电路
  17. 运维必备规章制度:故障分级和处罚规范 – 运维派
  18. 多媒体——图片——从相册中选取图片
  19. you are an asshole
  20. Python 代码理解 polygon.py

热门文章

  1. 请访问我的百度空间!
  2. 【2022-11-21】建行积分兑换滑块
  3. Kaggle案例之泰坦尼克船员幸存预测
  4. 面试题-HTTP/HTML/浏览器
  5. 今日头条lite:你关心的才是头条【极乐小程序商店出品】
  6. Java实现物理分页和逻辑分页
  7. ios睡眠分析 卧床 睡眠_你知道iOS 时钟里藏了这么一个睡眠小管家? (iOS)
  8. 基于arduino的简易警报器
  9. nodejs-Sream
  10. python xlwt生成excel,列数大于256,分表