我正在尝试构建一个并行的 for-each 循环来修改两个矩阵。我在开始循环之前创建并初始化矩阵。这是一个虚拟程序,它演示了我的代码应该如何工作。程序执行没有错误,但在 foreach 循环完成后矩阵仍然为空。注意:这是我的代码的简化版本,而不是实际代码本身。
#Assume that I've loaded parallel and doParallel and that my computer has 2+ cores
cluster <- makeCluster(detectCores())
registerDoParallel(cluster)
a1 <- array(dim=c(9,9))
a2 <- array(dim=c(9,9))
numbers <- 1:18
foreach (i=1:9, .combine='c') %dopar%{
a1[i,] = numbers[1:9]
a2[i,] = numbers[10:18]
}
stopCluster(cluster)
为什么这个程序不填充 a1 和 a2 的行?
编辑:我在以前的任何线程中都找不到我的问题的答案。C# 和 Perl 有类似的线程,但没有一个与 R 相关。