【发布时间】:2017-11-20 01:33:24
【问题描述】:
我想使用以下代码在 MATLAB 中运行 parfor 循环
B=load('dataB.mat'); % B is a 1600*100 matrix stored as 'dataB.mat' in the local folder
simN=100;
cof=cell(1,simN);
se=cell(1,simN);
parfor s=1:simN
[estimates, SE]=fct(0.5,[0.1,0.8,10]',B(:,s));
cof{s}=estimates';
se{s}=SE';
end
但是,代码似乎不起作用 - 没有警告,它只是永远运行而没有任何输出 - 我终止循环并发现它从未进入函数“fct”。关于如何在 MATLAB 的并行计算中加载诸如“dataB.mat”之类的外部数据的任何帮助将不胜感激?
【问题讨论】:
-
我看不出代码有什么问题。这可能只是需要很长时间。当您进行并行计算时,MATLAB 需要将所有必要的数据发送给每个工作人员。在这种情况下,
B需要复制到每个工人。如果B非常大,那么这可能会导致严重延迟,通常比正常的for循环花费更多时间。
标签: matlab parallel-processing