【问题标题】:R doMC library detectCores misreporting number of coresR doMC库detectCores误报核心数
【发布时间】:2017-08-13 22:12:41
【问题描述】:

一位 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

“关于这台 Mac”->“系统报告”报告的规格包括核心:

  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

【问题讨论】:

  • 这里的问题是线程数与内核数。核心是物理的,而线程(或多或少)分裂一个核心并且是软件驱动的。在线搜索“线程与内核”,您会发现大量材料。
  • 试试detectCores(logical = FALSE)

标签: r parallel-processing domc


【解决方案1】:

这里的问题是线程数与内核数。核心是物理的,而线程(或多或少)分裂一个核心并且是软件驱动的。这种论点组合应该让您了解核心:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 2010-10-24
    • 1970-01-01
    • 2012-03-14
    • 2011-02-11
    • 2012-11-30
    • 2012-06-24
    相关资源
    最近更新 更多