3

我使用以下代码...
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"))

只是挂起。我不知道为什么工人们会坚持这个命令。我可以以某种方式调查工作人员,看看他们是否只是在等待用户输入左右?

4

0 回答 0