R doMC库detectCores误报核心数

时间:2017-08-13 22:12:41

标签: r parallel-processing domc

R教师提供此代码以确保学生仅在其PC /笔记本电脑上使用一半核心进行并行处理。但是,如下所示,我的mac的系统报告说我有4个,而这个库似乎检测到8.为了确保至少有1或2个核心是免费的,这个代码是否设置正确?或者我是否应该使用ifelse()语句更改最后一行,该语句告诉它在系统规范不同意其检测时该怎么做?

R代码:

# Setting Parallel processing
library(doMC)
library(parallel)
number_of_cores <- detectCores()
registerDoMC(cores = number_of_cores/2)

输出(它看到多少个核心):

[1] 8

什么&#34;关于这款Mac&#34; - &GT; &#34;系统报告&#34;报告包括核心的规格:

  Model Name:   MacBook Pro
  Model Identifier: MacBookPro14,3
  Processor Name:   Intel Core i7
  Processor Speed:  2.8 GHz
  Number of Processors: 1
  Total Number of Cores:    4
  L2 Cache (per Core):  256 KB
  L3 Cache: 6 MB
  Memory:   16 GB
  Boot ROM Version: MBP143.0160.B02

1 个答案:

答案 0 :(得分:2)

这里的问题是线程数与内核数。内核是物理的,而线程(或多或少)则拆分内核并由软件驱动。这种参数组合应该可以让您获得核心知识:

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