Ich verwende R randomForestSRC
Bibliothek Version: 2.2.0 Date: 2016-05-17
, die ausdrücklich The package runs in both serial and parallel (OpenMP)
in ihrer Beschreibung sagt, und ich bin sicher, es ist geladen, wie sessionInfo()
sagt: randomForestSRC_2.2.0
. Ich habe die Anweisungen zur Installation der OpenMP-fähigen Version befolgt und sie von Ishwaran's site heruntergeladen.Wieso beschleunigt openmp nicht parallel mein randomForestSRC?
Doch ich versuche, den Bau eines kümmerlichen Wald von 8 Bäume zu beschleunigen, und es ist nicht gar zu beschleunigen :(
Serien:
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
Parallel:
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
Ich verwende Windows 10 Pro
, 64-Bit und mein Computer hat 4 Kerne und 8 logische Prozessoren, und meine Daten sind nicht so groß:
print(nrow(m))
23070
print(ncol(m))
67
Was mache ich falsch? Danke!
Können Sie mithilfe der Überwachungstools Ihres Betriebssystems überprüfen, wie viele Kerne tatsächlich in diesen beiden Beispielen verwendet werden? – Spacedman
@Spacedman - Ich habe den Taskmanager überprüft und in beiden Fällen sieht es so aus, als ob alle 8 Prozessoren etwas tun, was ~ 15% ihrer Zeit beansprucht - keiner von ihnen arbeitet sehr hart und keiner von ihnen ist völlig frei – ihadanny