我是Matlab中并行处理的新手。我想用代码调整现有循环:
result=[];
load('a.mat','myvar');
for ind=1:100
result(ind)=myvar; %some computationally 'heavy' function
end
虽然这个循环是计算,但我想预先获取名为'b.mat'
的下一个文件。当循环完成第一个文件时,它应该检查下一个文件是否可用,如果是,继续计算。
如何实现这一目标?我查看了几个教程,但无法找到实现这一目标的简单方法,但假设它应该相当简单
答案 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