我在Matlab中使用parfor遇到了问题。我在parfor循环中调用的函数中运行下面的代码:
saveas
函数崩溃; surf
来电,那么即使matlabpool打开,一切也都能正常运行。 我通常使用.pdf格式 saveas ,但如果我<。>以<。strong格式保存,一切正常。 .fig格式是唯一不会导致问题的格式。 当然,我无法调试并行循环,因为parfor with matlabpool open不允许步入,因此如果没有matlabpool打开,我可以看到每个变量都是好的。
我错过了什么吗?在parfor循环中使用冲浪我找不到任何已知问题。有太多奇怪的问题试图了解真正的问题在哪里,所以我问是否有人有类似的问题。
threads=4;
matlabpool(threads);
parfor i=1:threads
t=getCurrentTask();
tmpPath=['tmp' num2str(t.ID)];
importaData = open([tmpPath '\' 'Title','.mat']);
if isempty(importaData) == 0
f8 = importaData.data; %clear importaData;
hf8 = figure('Name','Title','NumberTitle','off', 'Color',[1 1 1], 'visible', 'off');
hold on; grid on; subplot(f8.subplot1);
title('Title');
h = surf(f8.x1,f8.y1,f8.surfVal1); set(h, 'EdgeAlpha', 0.05); axis('square'); view(0,90);
xlabel(f8.xLabel1); ylabel(f8.yLabel1); zlabel(f8.zLabel1);
hold on; subplot(f8.subplot2);
h = surf(f8.x2,f8.y2,f8.surfVal2); set(h, 'EdgeAlpha', 0.05); axis('square'); view(0,90);
xlabel(f8.xLabel2); ylabel(f8.yLabel2); zlabel(f8.zLabel2);
cd(tmpPath);
saveas(hf8, 'Title', 'pdf'); close(hf8);
cd('..');
delete([tmpPath '\' 'Title','.mat']);
else
error = -1;
end;
end;
UP:好的,这是导致错误的已完成程序:
使用distcomp.remoteparfor / getCompleteIntervals出错(第22行) parfor正在使用的会话已关闭。
我的目标是将Title.mat
保存到pdf文件中。当然,Title.mat包含一致和正确的数据。每个线程都应该进入一个包含。translate
.mat文件的独占目录。如果我不打开游泳池,一切都按预期工作。如果我以.fig格式保存,一切都按预期工作。