如何从MATLAB查询物理内核的数量?

Sam*_*rts 7 matlab operating-system multicore hyperthreading

有谁知道从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运行时会持续一段时间.

Edr*_*ric 9

您需要使用未记录的命令

feature('numcores')
Run Code Online (Sandbox Code Playgroud)

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

  • 嗯,不知道,`wmic`"对我有用".也许在命令的末尾添加`<nul`? (2认同)