Matlab代码性能计算。如何在PC上禁用多个内核来评估代码的性能

时间:2011-12-09 07:18:24

标签: matlab parallel-processing multicore toolkit

我在MATLAB上运行代码。我正在使用Parallel Computing Toolkit。我使用SPMD。我的电脑上有8个核心。我想先在1个核心上运行我的代码,查看时间,然后在2个核心上运行我的代码并查看时间,依此类推。  如何禁用/启用机器的某些内核?

由于

2 个答案:

答案 0 :(得分:3)

命令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

答案 1 :(得分:1)

您可以使用:

maxNumCompThreads(1)

它已被弃用,但在我测试的所有matlab中工作正常,直到matlab 2011a。