割り当てを使用して中間出力 (p) を格納する関数を作成したいと考えています。この中間出力は、以下のステートメントで使用されます。doSNOW と foreach を使用してすべてを並列化したいのですが、その中間出力が forarch ループの反復間でやり取りされることを望んでいません。p[[i]]
大量のコードを変更する必要があるため、中間出力をリスト (例: ) に保存したくありません。
- 質問 1: foreach ループの別の反復で中間出力 (p) が使用される危険性はありますか?
- 質問 2:「はい」の場合、その危険はいつ発生し、どのように防ぐことができますか?
これが私が意味することの例です:
install.packages('foreach')
library('foreach')
install.packages('doSNOW')
library('doSNOW')
NbrCores <- 4
cl<-makeCluster(NbrCores)
registerDoSNOW(cl)
test <- function(value){
foreach(i=1:500) %dopar% {
#some statement based on parameter 'value'
p <- value
#some statement that uses p
v <- p
#other statements
}
}
test(value=1)