matlab并行计算
来源:互联网 发布:装扮淘宝店铺 编辑:程序博客网 时间:2024/05/16 08:24
用到的库函数
matlabpool
- 打开并行计算池
tic , toc
- 计时,作为测试用
parafor
- 并行计算的循环方式
代码
定义一个耗时的函数如下
function A_cost( n ) pause(n) fprintf('A_cost execute finished,cost %d senconds!!\n',n);end
编写测试代码如下
%% initclc,clearclose allmatlabpool('open' , 2); % open%% generaltic;for ii = 1:5 A_cost(ii); endt1 = toc;fprintf('general iter cost %f seconds in sum\n' , t1);%% parallel testtic;parfor ii = 1:5 A_cost(ii); endt1 = toc;fprintf('parallel cost %f seconds in sum\n' , t1);matlabpool('close'); % close
结果如下
注意
并行计算池打开相关
- 我的电脑只能打开2个并行计算池,不同的电脑应该不一样,打开的个数超过限制时,matlab会报错并提醒
循环相关
- 在parfor的循环过程中,不能对循环变量进行重新赋值,否则会提示错误
多次对某个值重写时,最终运行结束该值为0,如下面的程序
matlabpool('open' , 2);tic;parfor ii = 1:5 %ii = A_cost(ii); % will cause error %test = ii + A_cost(ii); % test will not change test = A_cost(ii); % test will changeendt1 = toc;fprintf('parallel cost %f seconds in sum\n' , t1);matlabpool('close');
而下面的程序运行结束之后test为[1,2,3,4,5]
matlabpool('open' , 2);tic;parfor ii = 1:5 %ii = A_cost(ii); % will cause error %test = ii + A_cost(ii); % test will not change test(ii) = A_cost(ii); % test will changeendt1 = toc;fprintf('parallel cost %f seconds in sum\n' , t1);matlabpool('close');
1 0
- Matlab 并行计算工具箱
- Matlab并行计算
- matlab 集群并行计算~
- matlab SVM 并行计算
- matlab并行计算
- MATLAB 集群并行计算
- Matlab并行计算
- matlab并行计算
- matlab 并行计算
- MATLAB分布式并行计算环境
- parfor-- matlab并行计算教程
- MATLAB并行计算工具箱使用
- Matlab 使用 GPU 并行计算
- Matlab并行程序设计(一)配置matlab并行计算池
- matlab并行一 配置matlab并行计算池
- Matlab并行计算示例(一)
- matlab 高性能并行计算之 spmd
- Matlab并行计算中几个变量类型的区别
- iOS多语言设置
- Scala基础教程(六):字符串、数组、集合
- 栈和队列练习题题解(12.7.15~12.9.15)
- iOS 多线程总结
- Scala基础教程(七):类和对象、特征
- matlab并行计算
- 微信图文信息自动跳转
- 用C语言在终端打印彩色字符串
- Ubuntu 菜单栏任务栏消失的解决办法
- Scala基础教程(八):模式匹配、正则表达式
- 用python抢火车票
- 超限学习机--ELN 读书笔记一
- Scala基础教程(九):提取器、文件I/O
- gradle构建打包