由于无法创建mwe
,因此尝试在此处提供的详细信息之间取得适当的平衡。我的foreach循环挂在某些矩阵计算的中间。奇怪的是,它挂在我的imac上,而不挂在我的更大(即更多内存)的Linux机器上。如果我使用%dopar%
,它会挂起,但使用%do%
可以。它总是挂在内部for循环的第七次迭代上。它总是挂在'colSums'步骤上,但是我使用矩阵代数而不是colSums
计算colSums。如果我使用colSums
,则可以使用它。并不是我的矩阵尺寸不正确-我已经检查了它们并且没有收到错误。可能会发生什么?
helper <- function(mat){
vec <- rep(0, dim(mat)[1])
for(j in 1:7){
mat <- mat^(j*0.1)
vec <- vec + (rep(1, dim(mat)[1]) %*% mat) # ----- hangs here
}
return(vec)
}
foreach(ind = 1:10, .packages = 'Matrix') %dopar% {
helper(mat = mat)
}