次のコードを使用して...
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 を返します。しかし、2番目
clusterEvalQ(cl, checkpoint("2015-02-28"))
ハングするだけです。なぜ労働者がその命令に固執するのか私にはわかりません。どうにかしてワーカーを調べて、ユーザーの入力を待っているだけなのかどうかを確認できますか?