Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: performance of parfor
Replies: 4   Last Post: Apr 8, 2013 3:28 AM

 Messages: [ Previous | Next ]
 Edric Ellis Posts: 721 Registered: 12/7/04
Re: performance of parfor
Posted: Apr 5, 2013 8:50 AM

"kinor " <kinor.removethiswithdot@gmx.de> writes:

> I used parfor a while ago and it worked quite well (2.5 time faster
> with 3 labs). Now I tried to use it on win 7 with 2012a and an
> example from
> http://blogs.mathworks.com/loren/2007/10/03/parfor-the-course/ with
> the following results:
>
> matlabpool local 3
>
> n = 600;
> tic
> ranks = zeros(1,n);
> parfor (ind = 1:n)
> ranks(ind) = rank(magic(ind)); % last index could be ind,not n-ind+1
> end
> toc
>
> tic
> ranks = zeros(1,n);
> for (ind = 1:n)
> ranks(ind) = rank(magic(ind)); % last index could be ind,not n-ind+1
> end
> toc
>
> Starting matlabpool using the 'local' profile ... connected to 3 labs.
> Elapsed time is 10.773548 seconds.
> Elapsed time is 13.993966 seconds.
>
> Which is surprisingly slow for 3 labs. I would be really grateful for
> any hint to get the 3 labs working.

The MATLAB function 'RANK' is instrinsically multithreaded. On a single
machine, it's always going to be more efficient to use intrinsic
multithreading than to use explicit parallelism using a MATLABPOOL and
PARFOR because of the overheads of distributing the body of the loop to
the workers. MATLABPOOL workers run in "single computational thread"
mode, so to make a fair comparison, you should start MATLAB using

Cheers,

Edric.

Date Subject Author
4/4/13 kinor
4/5/13 Edric Ellis
4/5/13 kinor
4/5/13 Steven Lord
4/8/13 kinor