为什么openmp并行加速我的randomForestSRC?

时间:2016-07-31 10:03:55

标签: r parallel-processing random-forest

我正在使用R randomForestSRCVersion: 2.2.0 Date: 2016-05-17,在其描述中明确说明The package runs in both serial and parallel (OpenMP),我确定它已加载,sessionInfo()说:{{ 1}}。我已按照安装openMP的版本的说明进行操作,并从Ishwaran's site下载。

然而,我正在努力加快建造一片8棵树的小森林,而且它根本没有超速:(

串行:

randomForestSRC_2.2.0

并行:

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 ,64位,我的机器有4个内核和8个逻辑处理器,我的数据不是那么大:

Windows 10 Pro

我做错了什么? 谢谢!

1 个答案:

答案 0 :(得分:2)

实际上,该软件包确实支持串行和OpenMP并行处理。但是,默认的CRAN构建协议和二进制文件不能立即启用此功能。有关您的平台的其他详细信息,请参阅文档的第2页,标题为&#34; OpenMP并行处理 - 安装&#34;的部分。