我正在进行滚动回归分析,并希望使用我的PC的多个内核来提高执行速度 . 我试过的代码看起来像这样:

library(doParallel)
y <- reg.data[,1][1:15000]
x1 <- reg.data[,2][1:15000]
x2 <- reg.data[,3][1:15000]
windowSize = 8820
registerDoParallel(cores=6)
ptm <- proc.time()
z1 <- foreach(i=seq(1, (length(y)-windowSize+1), 1), .combine=rbind) %do% {
  idx <- i:(i+windowSize-1)
  coefficients(lm(y[idx]~0+x1[idx]+x2[idx]))
}
print(proc.time() - ptm)

代码执行并产生正确的结果 . 问题在于,无论我在做什么,我在花费的时间方面得到大致相同的结果,如果它是2核或6我已经注册了registerDoParallel() . 这与许多用户报告类似任务的情况形成鲜明对比 . 看看Windows中的TaskManager我可以看到所有6个内核都在做什么,而且与2个内核相比几乎没有加速(在总共~60秒执行时间内少于一秒) . 我有什么想法吗?