के साथ बीजों को नियंत्रित करना कल्पना कीजिए कि हम कई प्रक्रियाएं कर रहे हैं जहां मैं एक कार्यक्रम की शुरुआत में एक समग्र बीज निर्धारित करना चाहता हूं: उदा।mclapply
mylist <- list(as.list(rep(NA,3)), as.list(rep(NA,3)))
foo <- function(x){ for(i in 1:length(x)){
x[[i]] <- sample(100,1)
}
return(x)
}
# start block
set.seed(1)
l1 <- lapply(mylist, foo)
l2 <- lapply(mylist, foo)
# end
निश्चित रूप से एक ब्लॉक
l1
भीतर
और l2
अलग हैं, लेकिन अगर मैं ऊपर ब्लॉक फिर से चलाने के l1
पहले की तरह ही हो जाएगा और l2
पहले की तरह ही हो जाएगा।
कल्पना कीजिए foo
बुरी तरह समय तो लेने वाली है मैं mclapply
नहीं lapply
उपयोग करना चाहते हैं, तो मैं कार्य करें:
library(parallel)
# start block
set.seed(1)
mclapply(mylist , foo, mc.cores = 3)
mclapply(mylist , foo, mc.cores = 3)
# end
तो मैं इस ब्लॉक चलाने फिर मैं अलग परिणाम अगली बार मिल जाएगा। मैं एक ही व्यवहार को कैसे बना सकता हूं जैसे lapply
के साथ एक समग्र बीज सेट करना, लेकिन mclappy
का उपयोग करना। मैं mclapply
डॉक के माध्यम से देखा है, लेकिन मुझे यकीन है कि क्योंकि का उपयोग नहीं कर रहा हूँ:
set.seed(1)
l1 <- mclapply(mylist , foo, mc.cores = 3, mc.set.seed=FALSE)
l2 <- mclapply(mylist , foo, mc.cores = 3, mc.set.seed=FALSE)
l1
में परिणाम और l2
ही किया जा रहा है, जो नहीं है जो मैं चाहता ...
आप 'clusterSetupRNG' का उपयोग कर सकते हैं ... http://stackoverflow.com/questions/8358098/how-to-set-seed-for-random-simulations-with-foreach-and-domc-packages – user20650
चीयर्स लेकिन लाइब्रेरी (डीओआरएनजी) उदाहरण दिनांकित प्रतीत होता है और अब कार्यात्मक नहीं है और क्लस्टरसेटअप आरएनजी i मैंने वास्तव में काफी कुछ नहीं किया है, जब तक कि आप मुझे अन्यथा दिखा सकें। – user1320502
थोड़ा बदल गया लगता है ... ['डीआरएनएनजी संदर्भ मैनुअल]] (http://cran.r-project.org/web/packages/doRNG/index.html) के पीजी तीन पर एक नज़र डालें। या 'बर्फ' – user20650