Matrix operations with Parallel Computing Toolbox
显示 更早的评论
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.
采纳的回答
更多回答(2 个)
Jill Reese
2013-6-18
1 个投票
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).
Sascha
2013-6-19
0 个投票
1 个评论
Shashank Prasanna
2013-6-19
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.
类别
在 帮助中心 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!