【问题标题】:Error using parallel_function (matlabpool & parfor)使用 parallel_function 时出错(matlabpool 和 parfor)
【发布时间】:2013-06-01 04:59:03
【问题描述】:

我想读取大量文件,处理每个文件并将每个文件的结果保存在.mat 文件中。每个文件的处理独立于其他文件,所以我想尝试使用parfor。我编写了以下 Matlab 脚本文件:

load filelist
obj = package.name.SomeObject();
matlabpool local 5
parfor i=1:length(filelist)
    result = obj.compute(filelist{i});
    [~, name, ~] = fileparts(filelist{i});
    save(['~/path/' name], 'result');
end % file loop
matlabpool close

当我尝试在我的计算机上运行它时,Matlab 池被初始化 (connected to 5 workers),但随后出现以下错误消息:

Error using parallel_function (line 589)
Undefined function or variable "cleaner".

Error in readfiles (line 14)
parfor i=1:length(filelist)

Error in run (line 64)
evalin('caller', [script ';']);

你知道问题出在哪里吗?

【问题讨论】:

    标签: matlab parallel-processing parfor


    【解决方案1】:

    我不知道为什么(可能与此issue 有联系),但通过将代码包含在函数中并调用该函数(而不是通过run script.m 调用脚本文件)解决了问题.它还需要创建一个parsave 函数(参见解释here)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 2015-01-15
      • 2015-11-15
      • 2018-05-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多