【问题标题】:Matlab code performace calculation. How to disable multiple cores on PC to assess performance of codeMatlab代码性能计算。如何在 PC 上禁用多个内核以评估代码性能
【发布时间】:2011-12-09 07:18:24
【问题描述】:

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

谢谢

【问题讨论】:

    标签: matlab parallel-processing multicore toolkit


    【解决方案1】:

    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 个核心,工人多于核心是可能的,但不寻常。
    【解决方案2】:

    你可以使用:

    maxNumCompThreads(1)

    它已被弃用,但在 matlab 2011a 之前我测试过的所有 matlab 都可以正常工作。

    【讨论】:

    • 同样适用于 MATLAB R2015a。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 2011-12-05
    • 2012-09-14
    • 2016-07-17
    • 2016-01-30
    • 1970-01-01
    相关资源
    最近更新 更多