После того, как я некоторое время поигрался с параллельным пакетом R на моей машине на базе Debian, я все еще не могу найти способ удалить все дочерние процессы зомби после вычисления.
Я ищу общее решение, не зависящее от ОС.
Ниже приведен простой сценарий, иллюстрирующий проблему для двух ядер:
library(parallel)
testfun <- function(){TRUE}
cltype <- ifelse(.Platform$OS.type != "windows", "FORK", "PSOCK")
cl <- makeCluster(2, type = cltype)
p <- clusterCall(cl, testfun)
stopCluster(cl)
К сожалению, этот сценарий оставляет в таблице процессов два зомби-процесса, которые уничтожаются только при завершении работы R.