필터 지우기
필터 지우기

how can I write a parallel code in Matlab?

조회 수: 1 (최근 30일)
sasa
sasa 2014년 8월 1일
답변: Edric Ellis 2014년 8월 4일
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일
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일
Ideally, you should not open and close the pool for timing purposes - it's intended that you keep the pool open.

카테고리

Help CenterFile Exchange에서 Parallel for-Loops (parfor)에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by