检查是否从 R 中启用了超线程

Check if hyperthreading is enabled from within R

有没有办法检查是否在 R 中启用了超线程?

我现在能想到的最好的就是运行下面的系统调用,但是这个需要root权限,还得解析

system("dmidecode -t processor | grep HTT")

根据 F. Privé 的评论,parallel 包中的 detectCores 函数应该能够通过其第二个参数(合乎逻辑的)完成您想要的操作。来自 ?parallel::detectCores:

logical: Logical: if possible, use the number of physical CPUs/cores (if FALSE) or logical CPUs (if TRUE). The default is TRUE on Windows and FALSE elsewhere.

对于我的机器,一个 4 核超线程 i-7,我得到

# physical cores
parallel::detectCores(logical=FALSE)
[1] 4
# logical cores (threads)
parallel::detectCores(logical=TRUE)
[1] 8