我正在 MATLAB 上运行代码。我正在使用并行计算工具包。我使用 SPMD。我的 PC 上有 8 个核心。我想首先在 1 个核心上运行我的代码,查看时间,然后在 2 个核心上运行我的代码并查看时间,依此类推。 如何禁用/启用我的机器的某些核心?
谢谢
最佳答案
命令 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
。
关于Matlab代码性能计算。如何在 PC 上禁用多核以评估代码性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8442262/