我正在使用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下載。爲什麼openmp並行加速我的randomForestSRC?
然而,我試圖加快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
@Spacedman - 我檢查了任務管理器,在兩種情況下,它看起來像所有8個處理器都在做某些事情,這佔用了他們大約15%的時間 - 沒有一個工作非常努力,沒有一個完全空閒 – ihadanny