MATLAB DualCPU Hyper-Threading support
    5 ビュー (過去 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 で Performance and Memory についてさらに検索
			
	製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!