【发布时间】:2012-03-13 09:01:41
【问题描述】:
在多核上使用doSNOW包访问/写入全局变量是否有问题?
在下面的程序中,每个 MyCalculations(ii) 写入矩阵“globalVariable”的第 ii 列...
你认为结果会正确吗?会有隐藏的陷阱吗?
非常感谢!
附言我必须写出全局变量,因为这是一个简单的示例,实际上我有很多输出需要从并行循环中传输……因此,可能唯一的方法是写出全局变量。 ..
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)
附言我在问 - 在 DoSnow 框架内,是否存在访问/写入全局变量的危险...... thx
【问题讨论】:
-
您可以考虑使用doRedis 来解决您需要访问全局变量的问题。