1

次のようなスクリプトがあります。

#This is the master script.  It runs all other scripts.
rm(list=ls()) 

#Run data cleaing script
source("datacleaning.R")

set.seed(413) #Seed pre-selected as lead author's wife's birthday (April 13th)
reps=128

#Make imputated datasets
source("makeimps.R")

#Model selection step 1.  
source("model_selection.1.R")
load("AIC_results.1")
AIC_results

#best model removed the year interaction

#Model selection step 2.  removed year interaction
source("model_selection.2.R")
load("AIC_results.2")
AIC_results

#all interactions pretty good.  keeping this model

#Final selected model:
source("selectedmodel.R")

このマスター スクリプトをスーパーコンピューティング クラスターに送信します。32 コアで約 17 時間の CPU 時間と 40 分のウォールタイムが必要です。(したがって、私の再現不可能な例)。しかし、スクリプトを実行して結果を確認し、もう一度実行して結果を確認すると、結果が少し異なります。なんで?種をまきました!シードはどういうわけかリセットされますか?各スクリプト ファイル内でシードを指定する必要がありますか?

十分に収束していないことは明らかなので、回数を増やす必要があります。しかし、それは別の問題です。ここでの結果が再現されないのはなぜですか?どうすれば修正できますか?

前もって感謝します。

EDIT:私は、とを介して並列化を行っていdoMCますplyr。以下のコメントに基づいたいくつかの軽いグーグルは、これらのパッケージを使用して「並列シード」を実際に設定できないという事実を明らかにします。コードをSNOW何らかの方法で移行する必要があります。doMCとの解決策を誰かが知っている場合plyrは、それが何であるかを教えていただければ幸いです。

4

1 に答える 1