【问题标题】:Determine the Maximum Number of Processors Available for matlabpool (MATLAB Parallel Toolbox)确定可用于 matlabpool 的最大处理器数(MATLAB Parallel Toolbox)
【发布时间】:2012-11-04 03:31:19
【问题描述】:

我目前正在 MATLAB 中编写一些代码,这些代码使用 parfor 循环来加快一些繁琐的计算。

我的问题是代码会在远程集群上运行,可以在4核、8核或12核机器上运行(我不会提前知道是哪一个)...

我基本上需要一个代码 sn-p 来允许 MATLAB 确定可以在 matlabpool 中使用的最大内核数。如果我们将此变量称为maxcores,我可以继续使用

matlabpool('open',maxcores).

这样我就可以确保我正在使用所有可用的内核。

【问题讨论】:

标签: matlab parallel-processing


【解决方案1】:

您可以通过feature('numCores') 获取机器上的内核数,该地址未记录但似乎不太可能中断。 (source)

有人声称getNumberOfComputationalThreads 从 R2007a 开始也可以使用,但它不适用于我的 R2012a。

【讨论】:

    【解决方案2】:

    在 Dougal 的回复之外,我发现 getenv('NUMBER_OF_PROCESSORS') 返回了我的 Windows 系统上的线程数。

    【讨论】:

    • 与 feature('numCores') 相比,这个替代方案似乎更有用,因为它返回逻辑核心的数量,而不是物理核心。
    • 在带有 Matlab 2015a 的 Mac 中不可用。
    猜你喜欢
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多