Mtalab R2015b 多核并行运算以加快速度
2017-11-29 11:03
190 查看
目前网上给出的大部分matalb并行计算代码为
matlabpool local x %开始并行设置 生成并行pool
matlabpool close %关闭 并行pool
但对于matlab2015版本,已经没有了matlabpool命令,修改为
parpool local %开启
delete(gcp('nocreate'))%关闭
并利用parfor命令实现并行for循环的计算,实例程序如下:
我的代码如下:
没看太明白,不断尝试后,在end后面加入部分语句后,得到了解决。
matlabpool local x %开始并行设置 生成并行pool
matlabpool close %关闭 并行pool
但对于matlab2015版本,已经没有了matlabpool命令,修改为
parpool local %开启
delete(gcp('nocreate'))%关闭
并利用parfor命令实现并行for循环的计算,实例程序如下:
%传统方式 tic c1=1; for i = 1:500 c1 = c1+max(eig(rand(i,i))); end t1 = toc; %parfor并行方式计算 parpool local c2=1; tic parfor ii = 1:500 c2 = c2+max(eig(rand(ii,ii))); end delete(gcp('nocreate')) t2 = toc; display(strcat('客户端串行计算时间:',num2str(t1),'秒')); display(strcat('parfor并行计算时间:',num2str(t2),'秒'));但在实际应用时,使用parfor是,提示问题:The variable X1 in a parfor cannot be classified.
我的代码如下:
parpool local parfor m=1:Mont X1 = [100.*rand(1,N);20.*rand(1,N)] X2 = X1; X1(1,:) = X1(1,:)-1+.3*randn(1,N); X2(1,:) = X2(1,:)+3+.3*randn(1,N); ... disp(m) end delete(gcp('nocreate'))查了相关帮助文档 doc parfor和相关答疑帖子:http://blog.sina.com.cn/s/blog_866e7fa70101cv08.html
没看太明白,不断尝试后,在end后面加入部分语句后,得到了解决。
parpool local parfor m=1:Mont %产生数据 X1 = [100.*rand(1,N);20.*rand(1,N)] X2 = X1; X1(1,:) = X1(1,:)-1+.3*randn(1,N); X2(1,:) = X2(1,:)+3+.3*randn(1,N); .... disp(m) end X1=0; X2=0; delete(gcp('nocreate'))
相关文章推荐
- 并行编译加快 VS C++ 项目的编译速度
- 让gzip压缩速度加快的解决方案:使用支持多核CPU多线程并发压缩的pigz
- 并行编译加快 VS C++ 项目的编译速度
- 并行编译加快 VS C++ 项目的编译速度
- Qt使用多核(jom)加快编译速度
- 并行编译加快 VS C++ 项目的编译速度
- 在 .pro里加入 QMAKE_CXXFLAGS += /MP 将并行编译(VC),加快编译速度(姚冬的办法),或者-j4参数(MinGW)
- 并行编译加快 VS C++ 项目的编译速度
- GCD 苹果公司为多核的并行运算提供的解决方案
- Matlab 多核 多个CPU 并行运算
- 把多核CPU的计算能力都用起来吧,Parallel--让你的循环变成并行运算
- java8 ParallelStream 的并行体验,利用多核机器加快计算速度
- 并行编译加快VS C++项目的编译速度
- R语言的并行运算(CPU多核)
- 并行编译加快VS C++项目的编译速度
- 并行编译加快 VS C++ 项目的编译速度
- 加快MyEclipse启动速度
- 加快Dynamics AX 客户端开启速度
- Gradle Build速度加快终极方法