Ich versuche, eine Reihe von CSV-Dateien zu verarbeiten und geben Datenrahmen in R, parallel mit mclapply()
zurück. Ich habe eine 64-Kern-Maschine, und ich kann nicht mehr scheinen, dass 1 Kern im Moment unter Verwendung mclapply()
verwendet wird. In der Tat ist es ein bisschen schneller lapply()
statt mclapply()
im Moment zu laufen. Hier ist ein Beispiel, das zeigt, dass mclapply() nicht mehr die Kerne zur Verfügung Verwendung:mclapply nicht mehrere Kerne verwenden
library(parallel)
test <- lapply(1:100,function(x) rnorm(10000))
system.time(x <- lapply(test,function(x) loess.smooth(x,x)))
system.time(x <- mclapply(test,function(x) loess.smooth(x,x), mc.cores=32))
user system elapsed
0.000 0.000 7.234
user system elapsed
0.000 0.000 8.612
Gibt es einen Trick, um diese Funktion zu bekommen? Ich musste R von der Quelle auf dieser Maschine kompilieren (v3.0.1), gibt es einige Kompilierungsflaggen, die ich vermisste, um Gabeln zu erlauben? detectCores()
sagt mir, dass ich tatsächlich 64 Kerne habe, um mit zu spielen ... Irgendwelche Tipps geschätzt!
Welches Betriebssystem verwenden Sie? Es scheint für Ihren Fall nicht relevant zu sein, aber es ist bemerkenswert, dass 'mclapply' unter Windows nur ein Wrapper für' lapply' ist. – Frank
Linux. Redhat um genau zu sein. – reptilicus
Wenn jemand bestätigen kann, dass das obige Beispiel tatsächlich mit mclapply() beschleunigt, würde das auch helfen. – reptilicus