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.

 채택된 답변

Dima Lisin
Dima Lisin 2014년 8월 1일

0 개 추천

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

sasa
sasa 2014년 8월 2일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Edric Ellis
Edric Ellis 2014년 8월 4일

0 개 추천

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

카테고리

도움말 센터File Exchange에서 Parallel Computing Toolbox에 대해 자세히 알아보기

질문:

2014년 8월 1일

답변:

2014년 8월 4일

Community Treasure Hunt

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

Start Hunting!

Translated by