Parallel detectCores() 在虚拟机上给出错误的输出

Parallel detectCores() giving incorrect output on a Virtual machine

我正在对一台新笔记本电脑进行一些性能测试。当我尝试在并行计算上测试它时,我的问题就开始了。

所以,当我 运行 并行函数 detectCores() 时,结果是 1。问题是笔记本电脑有一个 i7-4800MQ 处理器,它是 4 个内核。 结果,当我 运行 我的代码时,它认为它只有一个核心,并且执行代码的时间与没有并行化时完全相同。

我已经在另一台机器上测试了代码,该机器具有 i5 处理器,也有 4 个内核,使用相同的 R 版本(R 3.0.2 64 位)和代码 运行s 完美。唯一的区别是新电脑安装的是 windows 8.1,而旧电脑安装的是 windows 7 另外,当我 运行 Sys.getenv(“NUMBER_OF_PROCESSORS”) 我也得到 1 作为答案。

我已经在互联网上搜索寻找没有快乐的答案。有人以前遇到过这个问题吗?

曼尼谢谢

确保在 运行ning detectCores() 之前加载 parallel 包。我还有一个 i-7 处理器(Windows 8.1,64 位),当我 运行 detectCores(logical = TRUE)[=17= 时,我可以看到 8 个内核] 当我 运行 detectCores(logical = FALSE) 时我得到 4。更多请参考这个link。 HTH