【发布时间】:2016-12-05 14:09:08
【问题描述】:
我正在使用 R 的 randomForestSRC 库 Version: 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