parfor and global variables

1 回表示 (過去 30 日間)
MRC
MRC 2013 年 11 月 1 日
コメント済み: MRC 2013 年 11 月 4 日
Hi, could you help me please in solving this problem? I need to use parfor and at the same time the function simuconf inside parfor uses global variables. I have read other similar questions but I haven't been able to find a solution. Thanks a lot!
B=7;
coeffconfidsimple=randn(200,2);
cutoffcoeffs=size(coeffconfidsimple,1);
temp=zeros(B,201);
parfor w=1:B
mstr=num2str(w);
A=load(['subdata' mstr '.mat']); %At each iteration I load subdata(w)
E=load(['freq' mstr '.mat']); %and freq(w) and I have to transform them in
%numerical arrays
C= struct2cell(A);
D= struct2cell(E);
global subdata
global freq
subdata= cell2mat(C);
freq=cell2mat(D);
compare=zeros(cutoffcoeffs,1);
for x=1:cutoffcoeffs
[compare(x)]=simuconf(coeffconfidsimple(x,:)'); %This function uses
%subdata and freq
%at each iteration
end
temp(w,:)=[w ((compare)*size(subdata,1))'];
end

採用された回答

Doug Hull
Doug Hull 2013 年 11 月 1 日
Why use globals? They are often just confusing and hard to debug. Just pass them into simuconf.

その他の回答 (1 件)

Haithem Bouziri
Haithem Bouziri 2013 年 11 月 1 日
I think you have to use matlabpool before using parfor , matlabpool(n) must call n workers to execute your parfor. n <= number of core in your processor.
  1 件のコメント
MRC
MRC 2013 年 11 月 4 日
Thank you very much!

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeParallel for-Loops (parfor) についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by