detectCores
位于 parallel
包(package)。 说明
尝试检测当前主机上的CPU核心数。
用法
detectCores(all.tests = FALSE, logical = TRUE)
参数
all.tests |
逻辑:如果为 true,则应用所有已知测试。 |
logical |
逻辑:如果可能,请使用物理 CPU/内核(如果 |
细节
这会尝试检测可用 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 数量。
注意
这不适合直接用于 mclapply
的 mc.cores
参数,也不适合在 makeCluster
中指定核心数量。首先是因为它可能返回 NA
,其次是因为它没有给出允许的核心数量,第三是因为在 Sparc Solaris 和某些 Windows 机器上,尝试一次使用所有逻辑 CPU 是不合理的。
例子
detectCores()
detectCores(logical = FALSE)
作者
Simon Urbanek and Brian Ripley
相关用法
- R pvec 使用 Forking 并行化向量映射函数
- R children 用于管理分叉进程的低级函数
- R makeCluster 创建并行套接字集群
- R clusterApply 使用集群应用操作
- R RNGstreams Pierre L'Ecuyer 的 RngStreams 的实施
- R mcparallel 在单独的进程中异步计算 R 表达式
- R mcfork 分叉当前 R 进程的副本
- R mcaffinity 获取或设置当前进程的CPU亲和性掩码
- R mclapply 使用 Forking 的 lapply 和 mapply 并行版本
- R splitIndices 划分任务在集群中分布
- R SparkR partitionBy用法及代码示例
- R purrr accumulate 累积向量缩减的中间结果
- R purrr imap 将函数应用于向量的每个元素及其索引
- R purrr list_transpose 转置列表
- R purrr as_vector 将列表强制转换为向量
- R purrr map_if 有条件地将函数应用于向量的每个元素
- R purrr map2 映射两个输入
- R purrr map_depth 在给定深度映射/修改元素
- R SparkR printSchema用法及代码示例
- R purrr list_simplify 将列表简化为原子或 S3 向量
- R purrr rerun 多次重新运行表达式
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Detect the Number of CPU Cores。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。