我使用以下代码...
1. 创建一个并行集群
2. 源 test.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))
返回 TRUE。但是第二个
clusterEvalQ(cl, checkpoint("2015-02-28"))
只是挂起。我不知道为什么工人们会坚持这个命令。我可以以某种方式调查工作人员,看看他们是否只是在等待用户输入左右?