Filter löschen
Filter löschen

how can I write a parallel code in Matlab?

1 Ansicht (letzte 30 Tage)
sasa
sasa am 1 Aug. 2014
Beantwortet: Edric Ellis am 4 Aug. 2014
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.

Akzeptierte Antwort

Dima Lisin
Dima Lisin am 1 Aug. 2014
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 Kommentar
sasa
sasa am 2 Aug. 2014
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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Edric Ellis
Edric Ellis am 4 Aug. 2014
Ideally, you should not open and close the pool for timing purposes - it's intended that you keep the pool open.

Kategorien

Mehr zu Parallel for-Loops (parfor) finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by