| detectCores {parallel} | R Documentation |
Detect the Number of CPU Cores
Description
Attempt to detect the number of CPU cores on the current host.
Usage
detectCores(all.tests = FALSE, logical = FALSE)
Arguments
all.tests |
Logical: if true apply all known tests. |
logical |
Logical: if possible, use the number of physical CPUs/cores
(if |
Details
This attempts to detect the number of CPU cores in the current machine.
It has methods to do so for Linux, Darwin (Mac OS X), FreeBSD, Solaris,
Irix and Windows. detectCores(TRUE) could be tried on other
Unix-alike systems.
Value
An integer, NA if the answer is unknown.
Exactly what this represents is OS-dependent: where possible by default it represents physical cores and not logical (e.g. hyperthreaded) CPUs.
On Windows the default is the number of logical CPUs.
Currently logical makes a difference on Sparc Solaris: there
logical = FALSE returns the number of physical cores and
logical = TRUE returns the number of available hardware
threads. (Some Sparc CPUs which do have multiple cores per CPU, others
have multiple threads per core and some have both.) For example, the
UltraSparc T2 CPU in the CRAN check server is a single physical CPU
with 8 cores, and each core supports 8 hardware threads. So
detectCores(logical = FALSE) returns 8, and
detectCores(logical = TRUE) returns 64.
Where virtual machines are in use, one would hope that the result represents the number of CPUs available (or potentially available) to that particular VM.
Author(s)
Simon Urbanek and Brian Ripley
Examples
detectCores()
detectCores(logical = TRUE)