Ich erlebe Langsamkeit beim Erstellen von Clustern mit dem parallel
-Paket.Was beeinflusst die Zeit zum Erstellen eines Clusters mit dem parallelen Paket?
Hier ist eine Funktion, die einen PSOCK-Cluster mit n
Knoten erstellt und dann stoppt.
library(parallel)
library(microbenchmark)
f <- function(n)
{
cl <- makeCluster(n)
on.exit(stopCluster(cl))
}
microbenchmark(f(2), f(4), times = 10)
## Unit: seconds
## expr min lq median uq max neval
## f(2) 4.095315 4.103224 4.206586 5.080307 5.991463 10
## f(4) 8.150088 8.179489 8.391088 8.822470 9.226745 10
Meine Maschine (eine einigermaßen moderne 4-Core-Workstation Win 7 ausgeführt Pro) nimmt etwa 4 Sekunden, um einen Cluster mit zwei Knoten und 8 Sekunden erstellen vier Knoten-Cluster zu erstellen. Das erschien mir zu langsam, also habe ich das gleiche Profiling auf einer identisch ausgestatteten Maschine eines Kollegen versucht, und es dauerte ein/zwei Sekunden für die beiden Tests jeweils.
Dies könnte bedeuten, dass auf meinem Computer einige seltsame Einstellungen vorgenommen wurden oder dass es ein anderes Problem gibt. Ich habe die Hilfeseiten ?makeCluster
und socketConnection
gelesen, aber nichts in Bezug auf die Verbesserung der Leistung gesehen.
Ich habe in den Windows Task-Manager geschaut, während der Code lief: Es gab keine offensichtliche Störung mit Antiviren- oder anderer Software, nur ein Rscript-Prozess lief bei ~ 17% (weniger als ein Kern).
Ich weiß nicht, wo ich suchen muss, um die Ursache des Problems zu finden. Gibt es bekannte Ursachen für Langsamkeit bei der PSOCK-Cluster-Erstellung unter Windows?
Sind 8 Sekunden zum Erstellen eines 4-Knoten-Clusters tatsächlich langsam (bis 2014 Standards), oder sind meine Erwartungen zu hoch?
8 Sekunden ist ziemlich langsam. Es dauert etwa 1 Sekunde auf meinem 3 Jahre alten win7-Arbeitsplatz. – Roland
dauert 11 Sekunden auf meinem neuen win8 pc. – JT85
1,6 und 3,2 Sekunden auf meinem 3 Jahre alten i7 mit W7. –