当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R detectCores 检测CPU核心数


R语言 detectCores 位于 parallel 包(package)。

说明

尝试检测当前主机上的CPU核心数。

用法

detectCores(all.tests = FALSE, logical = TRUE)

参数

all.tests

逻辑:如果为 true,则应用所有已知测试。

logical

逻辑:如果可能,请使用物理 CPU/内核(如果 FALSE )或逻辑 CPU(如果 TRUE )的数量。目前,仅在 macOS、Solaris 和 Windows 上支持此函数。

细节

这会尝试检测可用 CPU 核心的数量。

它有针对 Linux、macOS、FreeBSD、OpenBSD、Solaris 和 Windows 的方法。 detectCores(TRUE) 可以在其他类 Unix 系统上尝试。

一个整数,如果答案未知则为NA

这确切地表示的是OS-dependent:在可能的情况下,默认情况下它会计算逻辑(例如超线程)CPU,而不是物理核心或包。

在 macOS 下,“在当前电源管理模式下可用”和“本次启动可能可用”之间有进一步的区别,该函数返回第一个。

在 Sparc Solaris 上,logical = FALSE 返回物理内核的数量,logical = TRUE 返回可用硬件线程的数量。 (有些Sparc CPU每个CPU有多个核心,有些每个核心有多个线程,有些则两者都有。)例如,前CRAN检查服务器中的UltraSparc T2 CPU是具有8个核心的单个物理CPU,每个核心支持8 个硬件线程。因此detectCores(logical = FALSE) 返回 8,detectCores(logical = TRUE) 返回 64。

在使用虚拟机的情况下,人们希望logical = TRUE 的结果代表该特定虚拟机可用(或潜在可用)的 CPU 数量。

注意

这不适合直接用于 mclapplymc.cores 参数,也不适合在 makeCluster 中指定核心数量。首先是因为它可能返回 NA ,其次是因为它没有给出允许的核心数量,第三是因为在 Sparc Solaris 和某些 Windows 机器上,尝试一次使用所有逻辑 CPU 是不合理的。

例子

detectCores()
detectCores(logical = FALSE)

作者

Simon Urbanek and Brian Ripley

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Detect the Number of CPU Cores。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。