RNG, R, mclapply i klaster komputerów


10

Korzystam z symulacji na R i klastrze komputerów i mam następujący problem. Na każdym z X komputerów uruchamiam:

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

Jest 32 komputerów, każdy z 16 rdzeniami. Jednak około 2% liczb losowych jest identycznych. Jakie strategie zastosowałbyś, aby tego uniknąć?

Udało mi się uniknąć tego problemu dla fxT2, ustawiając opóźnienie (tj. Opóźnienie o sekundę czasu, w którym każde zadanie jest wysyłane do każdego z X komputerów). Ale wydaje się bardzo ad hoc do fxt2.

Problem polega na tym, że w rzeczywistości fxT2 jest długim zadaniem obejmującym pseudolosowe liczby. Pod koniec tego procesu spodziewam się, że otrzymam X * nessay tego samego eksperymentu statystycznego, a nie nessay reprodukcji. Jak upewnić się, że rzeczywiście tak jest i czy istnieje sposób, aby to sprawdzić ?.


Dobre pytanie. Spójrz na to pytanie dotyczące liczb losowych i pakietu wielordzeniowego
csgillespie

@CSgillepsie:> dziękuję za wskaźnik, ale nie jestem pewien, czy to ten sam problem: sposób, w jaki rozumiem pytanie, na które wskazałeś, wszystkie procesy są tworzone przez mclapply. Tutaj jest trochę inaczej: na każdym z komputerów wszystkie procesy są odradzane przez mclapply, ale nie dzieje się tak na różnych komputerach.
user603

Odpowiedzi:


6

Śnieg ma wyraźne poparcie dla zainicjowania podana liczba RNG strumieni w obliczeniach klastra.

Może wykorzystywać jedną z dwóch implementacji RNG:

W przeciwnym razie koordynację należy wykonać ręcznie.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.