MATLAB DualCPU Hyper-Threading support
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Jan
am 30 Jun. 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?
Akzeptierte Antwort
Jan
am 30 Jun. 2019
Bearbeitet: Jan
am 1 Jul. 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;
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!