how can I write a parallel code in Matlab?

hi every one, can you help me to write a program with parfor and compare the time consumed in comparing with for? The code is: matlabpool open local 7 tic parfor i = 1:100000 k=i end toc matlabpool close Elapsed time is 1.846197 seconds.
tic,for i = 1:100000 k=i end toc Elapsed time is 0.000640 seconds.

 Accepted Answer

The reason you are seeing this result is because your loop does not do anything. If you make each iteration of your loop do substantial work, you will see a speedup.

1 Comment

yes,That's right.Thanks for your help. I have tested with this code and the result is ok.
matlabpool open local 7 tic parfor i = 1:10000 k=i; I = imread('cameraman.tif'); h = fspecial('motion',20,45); blur = imfilter(I,h,'replicate'); end toc matlabpool close
tic for i = 1:10000 k=i; I = imread('cameraman.tif'); h = fspecial('motion',20,45); blur = imfilter(I,h,'replicate'); end toc
Starting matlabpool using the 'local' profile ... connected to 7 workers. Elapsed time is 23.898915 seconds. Sending a stop signal to all the workers ... stopped.
Elapsed time is 49.894086 seconds.

Sign in to comment.

More Answers (1)

Ideally, you should not open and close the pool for timing purposes - it's intended that you keep the pool open.

Categories

Find more on Parallel Computing Toolbox in Help Center and File Exchange

Asked:

on 1 Aug 2014

Answered:

on 4 Aug 2014

Community Treasure Hunt

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

Start Hunting!