If I am running R on linux or on a mac, I can detect the number of available cores using multicore:::detectCores()
. However, there's no windows version of the multicore functions, so I can't use this technique on windows.
How can I programmatically detect the number of cores on a windows machine, from within R?
The parallel package now has a function to detect the number of cores: parallel:::detectCores()
.
This thread has a number of suggestions, including:
Sys.getenv('NUMBER_OF_PROCESSORS')
Note also the posting in that thread by Prof. Ripley which talks to the difficulties of doing this.
If you actually need to distinguish between actual cores, chips, and logical processors, the API to call is GetLogicalProcessInformation
GetSystemInfo if just want to know how many logical processors on a machine (with no differentiation for hyperthreading.).
How you call this from "R" is beyond me. But I'd guess R has a facility for invoking code from native Windows DLLs.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With