7

有谁知道从 MATLAB 查询物理内核数量的方法?我特别想获得物理核心而不是逻辑核心的数量(启用超线程时可能会有所不同)。

我需要跨平台的方法(Windows 和 Linux,不关心 Mac),但我很乐意使用两个单独的方法和switch基于computer.

到目前为止,我已经尝试过:

  1. java.lang.Runtime.getRuntime().availableProcessors
  2. System.Environment.ProcessorCount
  3. !wmic cpu get NumberOfCores!wmic cpu get NumberOfLogicalProcessors

1 是跨平台的,但返回逻辑而不是物理处理器的数量。

2 仅适用于 Windows,并且还返回逻辑处理器而不是物理处理器。

3 提供物理和逻辑处理器,但也仅适用于 Windows,虽然我可以从 DOS 命令窗口成功使用它,但由于某种原因,从 MATLAB 运行时它似乎永远挂起。

4

3 回答 3

9

您需要使用未记录的命令

feature('numcores')

如此处所述:http: //undocumentedmatlab.com/blog/undocumented-feature-function/

于 2011-11-30T07:11:44.597 回答
3

这将起作用

getenv('NUMBER_OF_PROCESSORS')
于 2014-03-06T12:37:16.503 回答
1

您可以使用该功能maxNumCompThreads。但是它已被弃用。它仍然适用于 Matlab 2011a。

maxNumCompThreads
Warning: maxNumCompThreads will be removed in a future release. Please remove any
instances of this function from your code. 
> In maxNumCompThreads at 27

ans =

     4
于 2011-11-29T13:42:11.563 回答