Matrix operations with Parallel Computing Toolbox
Mostrar comentarios más antiguos
Hi all,
for a student project, I work with the "Parallel Computing Toolbox". To discover it's functionality I make simple matrix operations with distributed matrizes.
With an open matlapool (12 workers) I use (for example) the following code, on a computer with 16 cores:
M1 = rand (i,i);
M2 = rand (i,i);
tic
M = M1 * M2;
toc
M1 = distributed(M1);
M2 = distributed(M2);
tic
M = M1 * M2;
toc
While execution of this code I run "ksysguard" to observe the cpu-usage. During the first multiplication (with "normal" matrizes), the cpu-usage of all 16 cores is at 100%. While the second multiplication runs, the usage of 12 cores is at 100% (I think this could be correct, cause of the 12 workers). I even notice that the first multiplication is much quicker (I tested it for values of n up to 20.000), and gets quicker with bigger matrizes.
Even when I close the matlab pool and do a matrix multiplication, all 16 cores have a usage of 100%. Does this mean that matlab does parallel computation at default?
I hope you understand, what I am wondering about. Many thanks in advance for your suggestions.
Respuesta aceptada
Más respuestas (2)
Jill Reese
el 18 de Jun. de 2013
1 voto
A number of MATLAB functions are multithreaded, and matrix multiplication (*) is one of them. This is what you are seeing during the first multiplication (with "normal" matrices).
1 comentario
Sascha
el 18 de Jun. de 2013
Sascha
el 19 de Jun. de 2013
0 votos
1 comentario
Shashank Prasanna
el 19 de Jun. de 2013
Sascha, make sure you go ahead and accept an answer. This makes others who have questions similar to yours get their answer quickly by looking at the accepted answer.
Categorías
Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!