#r
#r
Вопрос:
Я использую parallel. Если мой код прерывается (например, из-за ошибки или просто из-за выключения консоли R) до запуска кода stopCluster (cl), то процессы R продолжают выполняться! Я использую новый Macbook Pro. В моем мониторе активности я вижу 8 запущенных процессов R, даже после того, как я закрыл консоль R. Единственный способ, которым я могу их остановить, — это перезагрузить мой компьютер. Я также могу принудительно завершить каждый из них по отдельности из монитора активности. Есть ли лучшее решение?
cl <- makeCluster(getOption('cl.cores', detectCores()))
clusterEvalQ(cl, library(data.table))
clusterEvalQ(cl, require(zoo))
...
stopCluster(cl)
Комментарии:
1. В Linux, когда это происходит, я
kill pid
использую экземпляры R из терминала.
Ответ №1:
Вы можете использовать mcKill
низкоуровневую функцию в parallel
пакете :
отправляет сигнал дочернему процессу: это эквивалентно pskill в package tools.
Пример:
p <- mcparallel(scan(n = 1, quiet = TRUE))
parallel:::mckill(p)
[1] TRUE
parallel:::mckill(p) ## check that the process is really killed
Error in FUN(3202L[[1L]], ...) : 'mckill' failed