相关疑难解决方法(0)

MATLAB parfor慢于 - 出了什么问题?

我正在处理的代码有如下循环:

bistar = zeros(numdims,numcases); 
parfor hh=1:nt       
  bistar = bistar +  A(:,:,hh)*data(:,:,hh+1)' ;
end   
Run Code Online (Sandbox Code Playgroud)

小nt(10).

计时后,它实际上比使用常规循环慢100倍!我知道parfor可以做并行总和,所以我不确定为什么这不起作用.

我跑

matlabpool
Run Code Online (Sandbox Code Playgroud)

在运行我的代码之前使用开箱即用的配置.

我对matlab比较陌生,刚开始使用并行功能,所以请不要认为我没有做一些愚蠢的事情.

谢谢!

PS:我在四核上运行代码,所以我希望看到一些改进.

parallel-processing performance matlab parfor

17
推荐指数
2
解决办法
1万
查看次数

使用网络计算机进行Matlab并行处理

我熟悉matlabpoolparfor使用,但我仍然需要加快计算速度.

我的1GB网络中有一台功能更强大的电脑.两台计算机都有R2010b,并且具有相同的代码和路径.

使用两台计算机进行并行计算的最简单方法是什么?

我今天使用的代码示例:

--- main.m ---

matlabpool('open', 3);
% ...
x = randn(1e5,1);
y = nan(size(x));
parfor k = 1 : length(x)
    y(k) = myfunc(x(k));
end
Run Code Online (Sandbox Code Playgroud)

--- myfunc.m ---

function y = myfunc(x)
    y = x; % some computation
return
Run Code Online (Sandbox Code Playgroud)

parallel-processing matlab cluster-computing

7
推荐指数
1
解决办法
4483
查看次数