RNG, R, mclapply und Cluster von Computern


10

Ich führe eine Simulation auf R und einem Computercluster aus und habe das folgende Problem. Auf jedem der X Computer, die ich ausführe:

fxT2 <- function(i) runif(10)
nessay <- 100
c(mclapply(1:nessay, fxT2), recursive=TRUE)

Es gibt 32 Computer mit jeweils 16 Kernen. Etwa 2% der Zufallszahlen sind jedoch identisch. Welche Strategien würden Sie anwenden, um dies zu vermeiden?

Ich konnte dieses Problem für fxT2 vermeiden, indem ich eine Latenz festlegte (dh die Zeit, zu der jeder Job an jeden der X-Computer gesendet wird, um eine Sekunde verzögerte). Aber es scheint sehr ad-hoc zu fxt2.

Das Problem ist, dass fxT2 in Wirklichkeit eine lange Aufgabe mit Pseudozufallszahlen ist. Am Ende des Prozesses erwarte ich eine X * nessay-Reproduktion desselben statistischen Experiments, keine Nessay-Reproduktion. Wie kann man sicherstellen, dass dies tatsächlich der Fall ist und gibt es eine Möglichkeit, dies zu überprüfen?


Gute Frage.
Werfen

@CSgillepsie:> Danke für den Zeiger, aber ich bin nicht sicher, ob es das gleiche Problem ist: So wie ich die Frage verstehe, auf die Sie hingewiesen haben, werden alle Prozesse von mclapply erzeugt. Hier ist es ein bisschen anders: auf jedem der Maschinen, alle Prozesse hervorgebracht durch mclapply, aber dies ist nicht der Fall für Maschinen.
user603

Antworten:


6

Der Schnee unterstützt ausdrücklich die Initialisierung der angegebenen Anzahl von RNG-Streams in einer Clusterberechnung.

Es kann eine von zwei RNG-Implementierungen verwenden:

Andernfalls müssen Sie die Koordination von Hand durchführen.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.