Я хочу переписать существующий код, использующий 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