Генерация случайных чисел с помощью doSMP - PullRequest
2 голосов
/ 07 мая 2011

Я пытаюсь использовать пакет doSMP для параллельного программирования в R. Вот фрагмент кода, который я написал, чтобы проверить, начинается ли каждая реплика MC с одного и того же начального числа, и даст ли RNG одинаковое число Случайные числа получаются одинаковыми. Я хочу, чтобы каждая реплика MC была случайной (я генерирую случайные числа в run.MC.replicate). Как я могу это исправить?

par.mc.result<- foreach(mc =1:nmc,.packages=c("MASS") ) %dopar% {

    source("./src/simulation_math_util_fn.R")

    source("./src/oosMDS.R")
    source("./src/smacofM.R")
    source("./src/oosIM.R")
    sink(file=paste("debug",mc,collapse=""))
    print(runif(1))
            run.MC.replicate(myParams)

    }

Я предполагаю, что такое поведение происходит из-за способа, которым doSMP генерирует дочерние процессы R. Пожалуйста, помогите

1 Ответ

3 голосов
/ 07 мая 2011

Вам нужен ГСЧ, подходящий для параллельных вычислений.Перейдите к представлению Высокопроизводительные вычисления и посмотрите раздел Параллельные вычисления: Случайные числа .В нем перечислены пакеты rsprng и rlecuyer .

...