使用Matlab中的并行处理工具箱预取文件

时间:2018-02-05 16:48:05

标签: matlab parallel-processing

我是Matlab中并行处理的新手。我想用代码调整现有循环:

result=[];
load('a.mat','myvar');

for ind=1:100
  result(ind)=myvar; %some computationally 'heavy' function
end

虽然这个循环是计算,但我想预先获取名为'b.mat'的下一个文件。当循环完成第一个文件时,它应该检查下一个文件是否可用,如果是,继续计算。

如何实现这一目标?我查看了几个教程,但无法找到实现这一目标的简单方法,但假设它应该相当简单

1 个答案:

答案 0 :(得分:1)

而是尝试预取,简单地将parfor包裹在整个循环中可能更简单。这样,每个工作人员加载然后处理一个充满数据的文件。 E.g。

fileNames = ...; % Get a list of files
parfor idx = 1:numel(fileNames)
    data = load(fileNames{idx}, 'myvar');
    result{idx} = doStuff(data.myvar);
end