problem with parfor variable

Hello,
i have a large code. I am summarizing the problem using a simple code.
parfor it=1:30
for jt=1:30
a(it,jt)=some_value;
end
end
an error is shown."The variable a in a parfor cannot be classified." why cant matlab classify the variable? why does the variable 'a' fail to become a sliced variable?
Is there any other indexing scheme that can serve my purpose in the above mentioned code?
THANKS IN ADVANCE.
-OBLI

 Respuesta aceptada

Thomas
Thomas el 4 de Jun. de 2012

1 voto

the above code in its simple form works: just preallocate for speed
a=zeros(30,30); % preallocate variable a
parfor it=1:30
for jt=1:30
a(it,jt)=rand(1);
end
end
the error in slicing the variable might come in from the part you probably left out..

11 comentarios

oblivious
oblivious el 4 de Jun. de 2012
Have you checked your code? It does not run as well. The variable 'a' is not classified in your code too.
Thomas
Thomas el 4 de Jun. de 2012
It runs just fine for me.. with and without the matlabpool open..
running locally as well as on a cluster...
so apparently your pool is not set up right..
Walter Roberson
Walter Roberson el 4 de Jun. de 2012
Thomas and oblivious: which MATLAB versions are you using? Different versions might diagnose differently.
oblivious
oblivious el 4 de Jun. de 2012
im using 7.10.0(R2010a)
Thomas
Thomas el 4 de Jun. de 2012
I have tested on 2011a,b,12 a.. Though the way matlabpool classifies variables was probably changed form 2011a.. and might be an issue in older ones..
Thomas
Thomas el 4 de Jun. de 2012
I believe if you make the parfor the inner most loop it might work in older versions..
for it=1:30
parfor jt=1:30
a(it,jt)=rand(1);
end
end
oblivious
oblivious el 4 de Jun. de 2012
Thanks Thomas
Thomas
Thomas el 4 de Jun. de 2012
is the problem with the sliced variable solved?
oblivious
oblivious el 4 de Jun. de 2012
nope, im trying it in another way
Thomas
Thomas el 4 de Jun. de 2012
I assume you are using Matlab older than R2011a..
oblivious
oblivious el 5 de Jun. de 2012
this problem was resolved in r2011a. i found in the release notes

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Preguntada:

el 4 de Jun. de 2012

Community Treasure Hunt

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

Start Hunting!

Translated by