Ich bin diese Frage zu fragen, wie Sie die Verwendung von mehreren Prozessoren von R auf einem Windows XP-Rechner zu optimieren.Multi-Core-Verarbeitung in R auf Windows XP - über DoMC und Foreach
Momentan erstelle ich 4 Skripte (jedes Skript mit z. B. für (i in 1: 100) und (i in 101: 200) usw.), die ich in 4 verschiedenen R-Sitzungen gleichzeitig ausführe. Dies scheint die gesamte verfügbare CPU zu verwenden.
Ich möchte dies jedoch ein bisschen effizienter machen. Eine Lösung könnte sein, das "doMC" - und das "foreach" -Paket zu verwenden, aber dies ist in R auf einer Windows-Maschine nicht möglich.
z.B.
library("foreach")
library("strucchange")
library("doMC") # would this be possible on a windows machine?
registerDoMC(2) # for a computer with two cores (processors)
## Nile data with one breakpoint: the annual flows drop in 1898
## because the first Ashwan dam was built
data("Nile")
plot(Nile)
## F statistics indicate one breakpoint
fs.nile <- Fstats(Nile ~ 1)
plot(fs.nile)
breakpoints(fs.nile) # , hpc = "foreach" --> It would be great to test this.
lines(breakpoints(fs.nile))
Irgendwelche Lösungen oder Ratschläge?
Hallo Dirk. Zwei Dinge: 1) habe ich versucht, den Code auf meinem Computer und es fror auf „makeCluster“ 2) Ich erinnere mich, zuletzt habe ich versucht, es, dass es nicht mit den beiden Kernen funktionierte ich hatte - aber nur zwei lief R Instanzen auf dem gleichen.Was denken Sie ? Tal –
Was lässt Sie glauben, dass die beiden Instanzen auf demselben Kern laufen? Wenn Sie "cpu pinning" nicht aktivieren (normalerweise eine eher vom Betriebssystem abhängige Funktion), weist das Betriebssystem Jobs nach eigenem Ermessen zu. Zahlreiche Leute, einschließlich des SNOW-Autors, benutzen es so für den erklärten Zweck der "einfachen parallelen Arbeit an Windows". Außerdem können Sockel in größerem Maßstab unzuverlässig sein. Echte Arbeit sollte mit MPI gemacht werden. Zuletzt, wie für die Maschine hängen: keine Ahnung. Ich vermeide dieses Betriebssystem wo ich kann, was fast immer der Fall ist. –
Hallo Dirk, Danke für die Antworten. In Bezug darauf, welcher Kern verwendet wird - ich habe einfach seine Verwendung im Windows Task-Manager überprüft. Aber es ist aus der Erinnerung, und ich könnte falsch liegen. Am besten, Tal –