【发布时间】:2021-05-23 12:29:48
【问题描述】:
我的代码很长,所以我用“foreach”将它们包装到并行多 CPU。但看起来只有 1 个 CPU 内核忙于运行。
这是我的代码:
library(doParallel)
library(foreach)
no_cores <- detectCores() - 2 # leave 2 core2 for the system
registerDoParallel(cores = no_cores)
ReadList <- read_excel("E:xxxx")
foreach(Index = 1:nrow(ReadList)) %do% {
# code body part is huge
write.table(D.results, quote = FALSE, sep = " ", paste(outputpath, "Daily_", List$Gid[Index], ".txt", sep="")) # I output result for each Index within the loop
}
【问题讨论】:
-
如果您希望循环并行运行,您需要使用
%dopar%而不是%do%。 cran.r-project.org/web/packages/foreach/foreach.pdf -
您实际上有超过 28 个内核吗?还不错……
标签: r foreach parallel.foreach doparallel