複数のコアでdoSNOWパッケージを使用してグローバル変数にアクセス/書き込みするときに問題はありますか?以下のプログラムでdoSNOWを使用してRで並列化を行う際にグローバル変数に書き込む?
、MyCalculationsの各(ii)は、マトリックスのII-番目の列「グローバル変数」に書き込み...
あなたは結果が正しいだろうと思いますか?隠れた漁場はありますか?
ありがとうございます!
p.s.これは単純な例なので、グローバル変数に書き出す必要があります。実際には、並列ループ内から多くの出力を転送する必要があります。したがって、おそらく唯一の方法はグローバル変数に書き出すことです。 ..
library(doSNOW)
MaxSearchSpace=44*5
globalVariable=matrix(0, 10000, MaxSearchSpace)
cl<-makeCluster(7)
registerDoSNOW(cl)
foreach (ii = 2:nMaxSearchSpace, .combine=cbind, .verbose=F) %dopar%
{
MyCalculations(ii)
}
stopCluster(cl)
ps DoSnowフレームワーク内で、グローバル変数へのアクセスや書き込みの危険性はありませんか?質問
[doRedis](https://github.com/bwlewis/doRedis)を使用すると、グローバル変数へのアクセスの必要性を処理することができます。 – daroczig