我正在 foreach 循环中使用 1.3e6x1.3e6 的大型共享内存矩阵。我使用 bigstatsr 包的 FBM 功能创建了该矩阵。我需要 FBM 类对象中的循环结果不会耗尽 RAM 内存。这就是我想要在没有 FBM 类对象的情况下做的事情。
library(doParallel)
library(foreach)
library("doFuture")
cl=makeCluster(2)
registerDoParallel(cl
)
registerDoFuture()
plan(multicore)
results=foreach(a=1:4,.combine='cbind') %dopar% {
a=a-1
foreach(b=1:2,.combine='c') %dopar% {
return(10*a + b)
}
}
这就是我尝试的方式
library(bigstatsr)
results=FBM(4,4,init=0)
saveinFBM=function(x,j){results[,j]=x}
foreach(a=1:4,.combine='savinFBM') %dopar% {
a=a-1
foreach(b=1:2,.combine='c') %dopar% {
return(10*a + b)
}
}
Error in get(as.character(FUN), mode = "function", envir = envir) :
object 'savinFBM' of mode 'function' was not found
PS:有人可以添加标签“dofuture”吗?