R: установить «Контрольную точку» на работника кластера
Я использую следующий код для ...
1. создать параллельный кластер
2. Исходный тест. R
3. и выполнить некоторую параллельную работу с функциями, определенными в 'test.R'
library(parallel)
cl <- makeCluster(4)
clusterEvalQ(cl, source("test.R"))
## do some parallel work
stopCluster(cl)
К сожалению, я полагаюсь на старые пакеты :-(
Можно использовать прошлые снимки пакетов CRAN, используя «контрольные точки»
require(checkpoint)
checkpoint("2015-02-28")
Мой вопрос ...
как я могу использовать старые пакетына Работники кластера?
Следующее не работает:
library(parallel)
cl <- makeCluster(4)
clusterEvalQ(cl, require(checkpoint)) # 1. load checkpoint package on workers
clusterEvalQ(cl, checkpoint("2015-02-28")) # 2. set the checkponit on workers
clusterEvalQ(cl, source("test.R"))
## do some parallel work
stopCluster(cl)
Команда
clusterEvalQ(cl, require(checkpoint))
Возвращает ИСТИНА. Но второе
clusterEvalQ(cl, checkpoint("2015-02-28"))
просто виснет. Я не знаю, почему рабочие подчиняются этой команде. Могу ли я как-то заглянуть в работника, чтобы узнать, не ожидают ли они пользовательского ввода или около того?