RNG, R, mclapply e cluster di computer


10

Sto eseguendo una simulazione su R e un cluster di computer e ho il seguente problema. Su ciascuno dei computer X che eseguo:

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

Esistono 32 computer, ognuno con 16 core. Tuttavia, circa il 2% dei numeri casuali sono identici. Quali strategie adotteresti per evitarlo?

Sono stato in grado di evitare questo problema per fxT2 impostando una latenza (ovvero ritardando di un secondo l'ora in cui ciascun lavoro viene inviato a ciascuno degli X computer). Ma sembra molto ad hoc per fxt2.

Il problema è che in realtà fxT2 è un compito lungo che coinvolge numeri pseudo casuali. Alla fine del processo, mi aspetto di ottenere la riproduzione X * nessay dello stesso esperimento statistico, non riproduzioni nessay. Come assicurarsi che sia davvero così e c'è un modo per verificarlo?


Buona domanda.
Dai

@CSgillepsie:> grazie per il puntatore, ma non sono sicuro che sia lo stesso problema: il modo in cui capisco la domanda che hai indicato, tutti i processi sono generati da Mclapply. Qui è un po 'diverso: su ciascuna delle macchine, tutti i processi sono generati da Mclapply, ma non è così per tutte le macchine.
user603

Risposte:


6

La neve ha il supporto esplicito per inizializzare il numero dato di flussi RNG in un calcolo del cluster.

Può utilizzare una delle due implementazioni RNG:

Altrimenti devi fare il coordinamento a mano.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.