Matlab Parfor with shared array?

Is there anyway to share an array between workers like below:
A = zeros(10,10)
parfor i = 1:10
for j = 1:10
A(i,j) = i*j;
end
end
I was able to run this but its slower than a regular for-loop.

 Risposta accettata

Jason Ross
Jason Ross il 22 Mar 2012

0 voti

You aren't doing enough work to make the overhead of starting the workers worth it.

3 Commenti

Justin
Justin il 22 Mar 2012
Jason,
Yea, the 10 was just as an example. I scaled it up to like 5000 and its still slower. Both give the same results. In addition, the parfor does work 6 threads from the system monitor as well. For a matrix size of 5000x5000 it takes about 4-5 seconds with parfor and 0.3 seconds with a regular forloop
Justin
Justin il 22 Mar 2012
Ok, I read the link you sent and realize i need more work in the body. Thanks,
-Justin
Jason Ross
Jason Ross il 22 Mar 2012
No problem!

Accedi per commentare.

Più risposte (0)

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by