Это сообщение об ошибке может появиться, когда дочерний процесс умирает / аварийно завершается, например,
> y <- parallel::mclapply(1:2, FUN = function(x) if (x == 1) quit("no") else x)
Warning message:
In parallel::mclapply(1:2, FUN = function(x) if (x == 1) quit("no") else x) :
scheduled core 1 did not deliver a result, all values of the job will be affected
> str(y)
List of 2
$ : NULL
$ : int 2
То, что дочерний процесс полностью умирает, конечно, нехорошо. Это может произойти по нескольким причинам. Я предполагаю, что вы распараллеливаете то, что нельзя распараллеливать. Разветвленная обработка (= mclapply()
), как известно, нестабильна с кодом, который, помимо прочего, многопоточным. : Я автор), вы получите более информативное сообщение об ошибке, например
> library(future.apply)
> plan(multicore)
> y <- future_lapply(1:2, FUN = function(x) if (x == 1) quit("no") else x)
Error: Failed to retrieve the result of MulticoreFuture (future_lapply-1) from
the forked worker (on localhost; PID 19959). Post-mortem diagnostic: No process
exists with this PID, i.e. the forked localhost worker is no longer alive.