R, foreach, doMPI уменьшил скорость с увеличенными итерациями

Я уже несколько лет использую комбинацию R, doMPI и foreach в кластере, и обычно увеличение числа итераций моделирования довольно линейно с точки зрения требуемого времени выполнения. Недавно я использовал этот вложенный цикл foreach, и по мере увеличения количества симуляций (NumSim) скорость резко замедляется, и я понятия не имею, почему. Есть мысли о том, как поставить диагноз или с чего начать искать?

Например, в качестве примера тестирования с 10 ядрами и всем остальным, если

NumSim = 10, время для завершения 678 секунд

NumSim = 20, время = 1856 секунд

NumSim = 30, время = 3560 секунд

NumSim = 50, время = 7956 секунд

В предыдущей работе я ожидал, что NumSim = 50 займет почти ровно 678 * 5 ~ 3390 секунд.

results <- foreach (j = 1:NumSim, .combine = acomb) %:%
    ## Person Single Population
    foreach (i = 1:PopSize, .combine=rbind, .packages = c("zoo")) %dopar% {
    annual <- AnnualProbInf(WatCons, CrpPerLit, 1, 1, naf)
    daily <- AnnualProbInf(WatCons, CrpPerLit, 365, 365, khf)
    immune <- AnnualProbInfImm(WatCons, CrpPerLit, 730, 730, khf, DayNonSus)
    out <- cbind (annual, daily, immune)
    }

0 ответов

Другие вопросы по тегам