在 R 中, 利用并行时,老是跑不完完整:100次跑70次之类的,偶尔还会有如下警告,想请问大家为什么?
代码示例
for(ij in 1 : 100)
{
t.start = Sys.time()
cl = makeCluster(getOption("cl.cores", 3))
envil = environment(lin_ben_model)
registerDoSNOW(cl)
iterations = randn
pb = txtProgressBar(max = iterations, style = 3)
progress = function(n) setTxtProgressBar(pb, n)
opts = list(progress = progress)
Re = foreach(r = r.start : min((r.start + randn - 1), randn), .combine = "rbind", .options.snow = opts,
.packages = c("doSNOW", "parallel", "GPfit"),
export = ls(envil)) %dopar%
{
index.s = index_all[r, ]
train.x = traindata[index.s, 1 : ncol(traindata) - 1]
train.y = traindata[pre.i, 2 : ncol(traindata)]
train.er = LOOtest(train.x, train.y)
temp = c(index.s, train.er)
return(temp)
}
t.stop = Sys.time()
print(t.stop - t.start)
stopCluster(cl)
Ree = rbind(Ree, Re)
r.start = nrow(Ree) + 1
if(r.start > randn){break}
}
上面的foreach 中跑不完整,所以我外面再加了一次循环。
除此之外,还会有警告或者错误如下:
警告
UseMethod("solve")里有警告:
关闭不再使用的链结5(<-DESKTOP-6PRLU93:11442)
UseMethod("solve")里有警告:
关闭不再使用的链结4(<-DESKTOP-6PRLU93:11442)
UseMethod("solve")里有警告:
关闭不再使用的链结3(<-DESKTOP-6PRLU93:11442)
错误
错误于unserialize(socklist[[n]]): 读取链结时发生了错误