linux - 如何让 R 使用所有处理器?

标签 linux r windows parallel-processing package

我有一台运行 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/

相关文章:

linux - 配置 httpd.conf 以在 Apache Red Hat Linux 上添加新站点

r - 自定义函数为 dplyr 的 mutate 中的所有行返回相同的值

python - 如何让类在没有被调用的情况下不运行?

python - pyautogui:Windows上未触发悬停事件

linux - 使用未知的文件格式重命名文件名和掩码。

c - 结构字符未正确分配

linux - 仅当文件尚不存在时才将行附加到文件中

r - 字符串用 R 数据帧的列中的反斜杠和双引号替换字符

r - 带有ggplot2::stat_qq的Q-Q图,颜色,单个组

windows - cmd.exe 返回 "Not enough storage is available to process this command."