當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。