about parfor and spmd speedup

hi,
I have tested the speedup of parfor and spmd as
1)for
tic
for n=1:1000
A=B*C;
end
toc;
2)parfor spmd in one worker in the same pc:
// I have stored B C in the worker before computing
tic
parfor n=1:1000
A=B*C;
end
toc;
I find that the speed of parfor and spmd is only 2/3 of single matlab. is it possible to make it faster?

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 30 Dez. 2011

0 Stimmen

If your matrices are not very big, then the time required to set up workers and communicate data in to them can overwhelm any saving of using multiple workers.

3 Kommentare

Xiaochun
Xiaochun am 30 Dez. 2011
Actually, the matrix is very large. The B is 70,000*70,000;
And I also test other code, and it needs nearly 4000seconds to finish for the single pc;the speedup is less than 2/3*p(p is processor numbers).Why?
Walter Roberson
Walter Roberson am 30 Dez. 2011
With a matrix that big, your "for" matrix multiplication would be farmed out to the highly optimized and multithreaded BLAS or LAPACK, using multiple cores or hyperthreading.
I gather that each "parfor" or "smpd" worker requires a new process, and my understanding is that those would only have access to the core or hyperthread they are allocated to.
Xiaochun
Xiaochun am 2 Jan. 2012
I see. Thank you very much.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Knut
Knut am 3 Jan. 2012

0 Stimmen

So the spot where parfor can really shine is loops that are : a)Simple enough that parfor can do them in parallell b)complex/non-general enough that MATLAB does not have a low-level library that does it in paralell anyways
?

1 Kommentar

Titus Edelhofer
Titus Edelhofer am 3 Jan. 2012
As a rule of thumb: yes. Another way to formulate b): when you have e.g. a quad core (with hyperthreading), i.e., your task manager shows you 8 CPU usages, and your (loop) code runs at exactly 12.5% average CPU usage ...

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu MATLAB Parallel Server finden Sie in Hilfe-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