При использовании% dopar% получение Ошибка в {: задача 1 не выполнена - «не удается открыть соединение» - PullRequest
0 голосов
/ 25 февраля 2020

Я хочу переписать существующий код, использующий foreach и% dopar%. Я получаю сообщение об ошибке ниже, когда я запускаю полный код. Ошибка отображается только когда я вызываю функцию (в строке 9) - я озадачен «не могу открыть соединение». Любая помощь приветствуется. Цель состоит в том, чтобы иметь возможность запускать function_test параллельно с различными значениями, взятыми из вектора z. Текущий код работает нормально для l oop и сериализуется.

z <- c("a","b","c","d","e","f","g","h")

    1    X <- 1:8
    2    system.time(
    3      foreach(x = X) %dopar% {
    4      arg1 <- 12 
    5      arg2 <- 90
    6      tmp1 <- df[df$a == z[x],] %>% dplyr::select(-starts_with("ABC"))
    7      tmp2 <- head(tmp1)
    8      tmp2
    9      tmp3 <- function_test (tmp1, arg1, arg2, "DEF", z[x])
    10    }
    11    )

    Error in { : task 1 failed - "cannot open the connection"
    In addition: Warning message:
    In mclapply(argsList, FUN, mc.preschedule = preschedule, mc.set.seed = set.seed,  :
      scheduled cores 8 encountered errors in user code, all values of the jobs will be affected
    Timing stopped at: 0.155 0.587 0.207
...