Функция makeCluster иногда зависает в моем коде, и ее нужно просто перезапустить, чтобы исправить проблему.
Чтобы сделать это в своем коде, я пытаюсь использовать цикл while плюс функцию withTimeout, чтобы иметь тайм-аут функции makeCluster, если она зависает, и перезапускать себя.
Проблема в том, что когда я создаю свой кластер с помощью withTimeout, я не могу получить к нему доступ позже для своего параллельного лаптопа.
library(parallel)
library(R.utils)
library(pbapply)
cl = NULL
while( is.null(cl) ){
cl = withTimeout({makeCluster(4,type = 'FORK')},timeout=3,
onTimeout="silent",envir = environment())
}
pblapply(1:3, function(x){x+1},cl = cl)
Сообщение об ошибке, которое я получаю:
Ошибка в сериализации (данные, node $ con, xdr = FALSE): ошибка записи в соединение