Matlab代码性能计算。如何在 PC 上禁用多核以评估代码性能

标签 matlab parallel-processing multicore toolkit

我正在 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/

相关文章:

wcf - 使用 ConcurrencyMode.Multiple 模式保留 WCF 服务中的消息顺序

math - 确定一些向量有何不同

matlab - 逻辑回归的随机梯度下降总是返回 Inf 的成本,并且权重向量永远不会变得更接近

r - macOS 和 CentOS 上的并行 Caret 与 doSNOW 集群

perl - 将 Log::Log4perl 与 MCE(多核引擎)Perl 结合使用

c++ - InterlockedIncrement 用法

MATLAB 访问结构体中的元胞数组

arrays - MATLAB:用递增的数字填充数组

algorithm - 数据的快速交织

c# - C# 3.5 中的异步编程