加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

在Windows XP上的R中进行多核处理 – 通过doMC和foreach

发布时间:2020-12-14 04:09:22 所属栏目:Windows 来源:网络整理
导读:我发布这个问题是为了询问如何在 Windows XP机器上优化R中多个处理器的使用. 目前我正在创建4个脚本(每个脚本用例如for(i in 1:100)和(i in 101:200)等),我同时在4个不同的R会话中运行.这似乎使用了所有可用的cpu. 但是,我希望这样做更有效率.一种解决方案
我发布这个问题是为了询问如何在 Windows XP机器上优化R中多个处理器的使用.

目前我正在创建4个脚本(每个脚本用例如for(i in 1:100)和(i in 101:200)等),我同时在4个不同的R会话中运行.这似乎使用了所有可用的cpu.

但是,我希望这样做更有效率.一种解决方案可能是使用“doMC”和“foreach”软件包,但这在Windows机器上的R中是不可能的.

例如

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))

任何解决方案或建议?

为了完整起见,这里是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"
>

真的那么难吗?

附加软件包,如doSNOW及其后
foreach可以以便携方式使用它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读