MATLAB DualCPU Hyper-Threading support
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Jan
le 30 Juin 2019
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?
Réponse acceptée
Jan
le 30 Juin 2019
Modifié(e) : Jan
le 1 Juil 2019
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;
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!