I want to use a for-loop inside parfor, is it possible? If not what is the alternative?
Thanks,

 Respuesta aceptada

Edric Ellis
Edric Ellis el 17 de Jun. de 2011

1 voto

Yes, it's possible. For example,
parfor ii=1:10
for jj=1:10
x(ii,jj) = rand
end
end
Note that this example is so computationally trivial that it is much slower than a serial version.

6 comentarios

Mohamed
Mohamed el 17 de Jun. de 2011
Thanks Edric :)
I have another question please, the main purpose of parfor is just time ? or if i have multiple circles with different x,y position and same radius and wanna to draw them and move them SIMULTANEOUSLY ... can parfor help me ??
Thanks,
Walter Roberson
Walter Roberson el 17 de Jun. de 2011
If I remember correctly, the actual plotting all goes through the same thread. I do not know, though, if that extends to updating the properties of existing plot objects: I think for consistency that would have to go through the single thread too.
Benoit
Benoit el 29 de Jun. de 2012
Hello,
I actually have problems with the above code as I get the message that the variable x cannot classified.
??? Error: The variable x in a parfor cannot be classified. See Parallel for Loops in MATLAB, "Overview".
There must be that variable x must be defined somehow. Any help appreciated.
Thanks!
Walter Roberson
Walter Roberson el 29 de Jun. de 2012
In a recent thread we have been discussion whether the workers have access to graphics at all (I don't have the toolbox to check myself.) The evidence is suggestive that the workers do not have graphics access, but I have not happened to read any definite statement of that.
Edric Ellis
Edric Ellis el 2 de Jul. de 2012
@Benoit - which version are you running? The ability to recognise 'x' as a sliced variable was added relatively recently.
@Walter - matlabpool workers (either local workers with PCT or cluster workers with MDCS) have no visible graphics of their own. However, they can generate off-screen graphics and call 'print' to files.
Niels
Niels el 6 de Mzo. de 2015
Editada: Niels el 6 de Mzo. de 2015
Hi Edric, I am trying to run a slightly modified script:
a = linspace(0,10);
parfor ii=1:10
for jj=1:length(a)
x(ii,jj) = rand;
end
end
However, Matlab complains about the x variable classification. But I don't quite understand, why it shouldn't work. Any ideas? Thanks in advance, Niels.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 17 de Jun. de 2011

Editada:

el 6 de Mzo. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by