【问题标题】:Why isn't openmp parallel speeding up my randomForestSRC?为什么 openmp parallel 不能加速我的 randomForestSRC?
【发布时间】:2016-12-05 14:09:08
【问题描述】:

我正在使用 R 的 randomForestSRCVersion: 2.2.0 Date: 2016-05-17,它在其描述中明确表示 The package runs in both serial and parallel (OpenMP),我确定它已加载,正如 sessionInfo() 所说:randomForestSRC_2.2.0。我已按照说明安装启用了 openMP 的版本,并从 Ishwaran's site 下载了它。

然而,我正在努力加快建设一个由 8 棵树组成的小森林,但它根本没有超速 :(

序列号:

options(rf.cores=1, mc.cores=1)
system.time(my.rfsrc <- rfsrc(Surv(score_years_before_label, status) ~ ., data = m, nsplit=10, ntree = 8, na.action = "na.impute", tree.err=TRUE, importance = TRUE))
user  system elapsed 
359.42    0.06  359.58 

平行:

print(detectCores())
[1] 8
options(rf.cores=8, mc.cores=8)
system.time(my.rfsrc <- rfsrc(Surv(score_years_before_label, status) ~ ., data = m, nsplit=10, ntree = 8, na.action = "na.impute", tree.err=TRUE, importance = TRUE))
user  system elapsed 
378.07    0.05  314.67 

我使用的是Windows 10 Pro,64 位,我的机器有 4 个内核和 8 个逻辑处理器,我的数据不是那么大:

print(nrow(m))
23070
print(ncol(m))
67

我做错了什么? 谢谢!

【问题讨论】:

  • 您能否使用操作系统的监控工具检查这两个示例中实际使用了多少个内核?
  • @Spacedman - 我检查了任务管理器,在这两种情况下,看起来所有 8 个处理器都在做某事,这需要它们大约 15% 的时间 - 它们都没有非常努力地工作,也没有一个完全空闲

标签: r parallel-processing random-forest


【解决方案1】:

确实,该软件包确实支持串行和 OpenMP 并行处理。但是,默认的 CRAN 构建协议和二进制文件不支持开箱即用的此功能。请参阅文档的第二页,标题为“OpenMP 并行处理 - 安装”的部分,了解特定于您的平台的其他详细信息。

【讨论】:

  • 谢谢,但我很确定我已经按照说明进行操作 - 我使用的包是来自 ccs.miami.edu/~hishwaran/rfsrc.html 的包 - 它是 randomForestSRC_2.2.0.zip,大小为 1.30 MB(1,365,819 字节) )。我还错过了什么吗?? (感谢您的快速支持!:)
  • 为 Windows 发布的二进制文件是使用 Windows 8.1 Pro 构建的。不幸的是,我们尚未对其进行测试或使用 Windows 10 构建该软件包。在任何平台上(始终)使用的更好方法是使用发布的说明从源代码编译包。先决条件是 R Windows 工具集在您的系统上可用。在 Windows 上从源代码编译 CRAN 包比其他平台要复杂一些。我会查看cran.r-project.org/bin/windows/Rtools 以获取有关如何执行此操作的更多信息。
猜你喜欢
  • 1970-01-01
  • 2019-08-01
  • 1970-01-01
  • 2012-10-23
  • 1970-01-01
  • 1970-01-01
  • 2014-08-02
  • 2018-08-11
  • 1970-01-01
相关资源
最近更新 更多