我发布此问题是为了询问有关如何在Windows XP计算机上优化R中多个处理器的使用的建议。
目前我正在创建4个脚本(例如for(i in 1:100)和(i in 101:200)等),我同时在4个不同的R会话中运行。这似乎使用了所有可用的cpu。
但是我希望这样做更有效率。一种解决方案可能是使用“doMC”和“foreach”软件包,但这在Windows机器上的R中是不可能的。
e.g。
library("foreach")
library("strucchange")
library("doMC") # would this be possible on a windows machine?
registerDoMC(2) # for a computer with two cores (processors)
## Nile data with one breakpoint: the annual flows drop in 1898
## because the first Ashwan dam was built
data("Nile")
plot(Nile)
## F statistics indicate one breakpoint
fs.nile <- Fstats(Nile ~ 1)
plot(fs.nile)
breakpoints(fs.nile) # , hpc = "foreach" --> It would be great to test this.
lines(breakpoints(fs.nile))
任何解决方案或建议?
答案 0 :(得分:4)
尝试doSNOW
并行后端 - Windows上开箱即用。与雪插座群集一起使用。
答案 1 :(得分:4)
为了完整起见,这里是Tal的评论所要求的答案,它提供了一个简单而便携的替代方案。答案包括运行
> library(snow)
> help(makeCluster)
并运行示例顶部的前三行代码:部分:
> cl <- makeCluster(c("localhost","localhost"), type = "SOCK")
> clusterApply(cl, 1:2, get("+"), 3)
[[1]]
[1] 4
[[2]]
[1] 5
> stopCluster(cl)
> .Platform$OS.type
[1] "windows"
>
那真的那么难吗?
答案 2 :(得分:3)
您可以从REvolution Computing尝试doSMP
。
有关详细信息,请参阅此博文:
Parallel Multicore Processing with R (on Windows)