我有一台运行 Windows XP 的四核笔记本电脑,但查看任务管理器 R 似乎一次只使用一个处理器。如何让 R 使用所有四个处理器并加速我的 R 程序?
最佳答案
我有一个我使用的基本系统,我在“for”循环上并行化我的程序。一旦您了解需要做什么,此方法就很简单。它仅适用于本地计算,但这似乎是您所追求的。
您需要安装这些库:
library("parallel")
library("foreach")
library("doParallel")
首先,您需要创建计算集群。我通常在运行并行程序时做其他事情,所以我喜欢让一个打开。 “detectCores”函数将返回您计算机中的核心数。
cl <- makeCluster(detectCores() - 1)
registerDoParallel(cl, cores = detectCores() - 1)
接下来,使用“foreach”命令以及 %dopar% 运算符调用您的 for 循环。我总是使用“尝试”包装器来确保丢弃操作失败的任何迭代,并且不会破坏原本好的数据。您需要指定“.combine”参数,并将任何必要的包传递到循环中。请注意,“i”是用等号定义的,而不是“in”运算符!
data = foreach(i = 1:length(filenames), .packages = c("ncdf","chron","stats"),
.combine = rbind) %dopar% {
try({
# your operations; line 1...
# your operations; line 2...
# your output
})
}
完成后,清理:
stopCluster(cl)
关于linux - 如何让 R 使用所有处理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1395309/