我在MATLAB上運行代碼。我正在使用並行計算工具包。我使用SPMD。我的電腦上有8個內核。我想先在1核心上運行我的代碼,看看時間,然後在2個核心上運行我的代碼並查看時間,依此類推。 如何禁用/啓用我的機器的某些內核?Matlab代碼性能計算。如何禁用PC上的多核以評估代碼的性能
感謝
我在MATLAB上運行代碼。我正在使用並行計算工具包。我使用SPMD。我的電腦上有8個內核。我想先在1核心上運行我的代碼,看看時間,然後在2個核心上運行我的代碼並查看時間,依此類推。 如何禁用/啓用我的機器的某些內核?Matlab代碼性能計算。如何禁用PC上的多核以評估代碼的性能
感謝
您可以使用:
maxNumCompThreads(1)
它deprectaed,但工作得很好我一個測試,直到MATLAB 2011A所有MATLAB。
命令maxNumCompThreads
返回執行命令的MATLAB副本可能使用的最大計算線程數。但是,由matlabpool
創建的MATLAB工作人員是按設計單線程的。試試這個確認:
matlabpool open 2
parfor i = 1:2
warning('off','MATLAB:maxNumCompThreads:Deprecated')
maxNumCompThreads
warning('on','MATLAB:maxNumCompThreads:Deprecated')
end
ans =
1
ans =
1
如果你想不想來一次你的代碼上越來越多的內核運行時,你可以試試:
matlabpool open 1
runmycode
matlabpool close
matlabpool open 2
runmycode
matlabpool close
matlabpool open 3
runmycode
等多達matlabpool open 8
。
或者,在R2011b中,「matlabpool open 12」。 –
儘管R2011b可以使用12名工人,但我的意思是停在8位,因爲OP提到他擁有8個內核,可能會有比核心更多的員工,但不同尋常。 –
也適用於MATLAB R2015a。 – Royi