将%*%挂在foreach%dopar%循环中

时间:2020-10-01 03:46:46

标签: r parallel-foreach

由于无法创建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)
}

0 个答案:

没有答案
相关问题