我在parfor
下面给出了一个简单的循环。
% fileAddr is a cell array of (size N) of file-addresses
sIdx = nan(N,1);
eIdx = nan(N,1);
errMsg = cell(N,1);
parfor i=1:N
[sIdx(i),eIdx(i),errMsg{i}] = myFunk(fileAddr{i});
end
函数文件myFun()
加载由 给出的文件fileAddr{i}
,进行一些计算并返回结果。文件加载部分是最耗时的。我的机器有 4 个物理内核。我尝试parfor()
了一个由 1、2、3 和 4 名工人组成的池。每次,时间消耗都差不多。我的理解是,如果多个工作人员load()
并行处理文件,程序运行速度会更快,但分析器结果显示不同。
谁能解释我在哪里犯了错误?