RNG、R、mclapplyおよびコンピューターのクラスター


10

Rとコンピューターのクラスターでシミュレーションを実行していますが、次の問題があります。私が実行する各Xコンピューターで:

fxT2 <- function(i) runif(10)
nessay <- 100
c(mclapply(1:nessay, fxT2), recursive=TRUE)

32台のコンピューターがあり、それぞれに16コアがあります。ただし、乱数の約2%は同一です。これを回避するためにどのような戦略を採用しますか?

レイテンシを設定することで、fxT2のこの問題を回避できました(つまり、各ジョブが各Xコンピューターに送信される時間を1秒遅らせます)。しかし、それはfxt2にとって非常に特別です。

問題は、実際にはfxT2が疑似乱数を含む長いタスクであることです。プロセスの終わりに、私は同じ統計実験のX * nessay再現を得ることが期待されます。nessay再現ではありません。これが確かに事実であり、これを確認する方法はありますか?


良い質問。乱数とマルチコアパッケージに関するこの質問
ご覧ください

@CSgillepsie:>ポインターに感謝しますが、同じ問題かどうかはわかりません。あなたが指摘した質問を理解する方法で、すべてのプロセスはmclapplyによって生成されます。ここでは少し異なります。各マシンでは、すべてのプロセスがmclapplyによって生成されますが、これはマシン全体に当てはまるわけではありません。
user603 '18

回答:


6

雪が RNGの与えられた数は、クラスタの計算にストリームを初期化するために明示的にサポートしています。

次の2つのRNG実装のいずれかを使用できます。

それ以外の場合は、調整を手動で行う必要があります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.