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 を返します。しかし、2番目

clusterEvalQ(cl, checkpoint("2015-02-28"))

ハングするだけです。なぜ労働者がその命令に固執するのか私にはわかりません。どうにかしてワーカーを調べて、ユーザーの入力を待っているだけなのかどうかを確認できますか?

4

0 に答える 0