在foreach%dopar%循环中挂起%*%
试图在这里给出的细节数量上取得适当的平衡,因为我无法创建在foreach%dopar%循环中挂起%*%,r,parallel-foreach,R,Parallel Foreach,试图在这里给出的细节数量上取得适当的平衡,因为我无法创建mwe。我的FURACH循环挂在一些矩阵计算的中间。奇怪的是,它挂在我的imac上,但不挂在我的更大(即内存更多)的linux机器上。如果我使用%dopar%,它将挂起,但使用%do%则可以。它总是挂在内部for循环的第七次迭代上。它总是挂起“colSums”步骤,但我使用矩阵代数计算colSums,而不是colSums。如果我使用colSums,我可以让它工作。这并不是因为我的矩阵尺寸不正确——我已经检查了它们,没有收到错误。会发生什么事
mwe
。我的FURACH循环挂在一些矩阵计算的中间。奇怪的是,它挂在我的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)
}
for
循环中的helperj=1:7
错误。使用1:7的j检查mac上的内存使用情况。它可能开始交换。