MATLAB DualCPU Hyper-Threading support
1 回表示 (過去 30 日間)
古いコメントを表示
Hello everyone.
I'm going to buy a dual CPU workstation and would like to know if a vectorized MATLAB code uses
all the cores of both CPUs without the need to
use the Parallel Computing Toolbox.
Thanks!
4 件のコメント
Jan
2019 年 6 月 30 日
I do not understand what
use of " : " instead of " for " loop
means. Of course it depends on the specific code, how it is executed. Calling the colon operator "." a "vectorization function" is strange.
If your code exhausts 12 threads, you can expect that it let 8 threads work efficiently also. So what exactly is your question?
採用された回答
Jan
2019 年 6 月 30 日
編集済み: Jan
2019 年 7 月 1 日
Yes. Matlab will use the available cores. At least most likely. Matlab might split the array columnwise and if the input has 5 columns, there is a chance that only 5 cores are used. Many functions are multi-threaded, but this is applied for "large" arrays only.
I'm not sure, if hyper-threading is used in Matlab. Maybe only the physical cores are used for the reason of efficiency.
Note that:
[m,n]=size(matrix);
for i=1:m
for l=1:n
matrix(i,l) = matrix(i,l)^2;
end
end
and
[m,n]=size(matrix)
matrix(:,:)=matrix(:,:)^2;
do not compute the same result. The 2nd code works for square matrices only and is a matrix multiplication. Equivalent to the first code would be:
% No need to determine the size...
matrix(:,:) = matrix(:,:) .^ 2;
% ^ elementwise squaring
It would be even more efficient, to omit the (:,:):
matrix = matrix .^ 2;
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!