检测Windows上的核心数

时间:2011-06-17 17:16:52

标签: windows r multicore

如果我在Linux或Mac上运行R,我可以使用multicore:::detectCores()检测可用内核的数量。但是,没有多核功能的Windows版本,所以我不能在Windows上使用这种技术。

如何从R?

中以编程方式检测Windows机器上的核心数量

4 个答案:

答案 0 :(得分:22)

并行程序包现在具有检测核心数量的功能:parallel:::detectCores()

答案 1 :(得分:13)

thread有许多建议,包括:

Sys.getenv('NUMBER_OF_PROCESSORS')

另请注意Ripley教授在该主题中的帖子,该文件谈到了这样做的困难。

答案 2 :(得分:3)

如果您确实需要区分实际核心,芯片和逻辑处理器,则要调用的API为GetLogicalProcessInformation

GetSystemInfo如果只是想知道一台机器上有多少逻辑处理器(没有区分超线程的话。)。

你如何用“R”来称呼它是超出我的。但我猜R有一个从本机Windows DLL调用代码的工具。

答案 3 :(得分:0)

GetSystemInfo将为您提供一个具有“处理器”数量的结构,该结构对应于核心总数。

理论上,它将与另一个答案中推荐的环境变量具有相同的值,但用户可以篡改(或删除)环境变量。根据您的意图,这可能是错误或功能。