首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >windows XP上R中的多核处理-通过doMC和foreach

windows XP上R中的多核处理-通过doMC和foreach
EN

Stack Overflow用户
提问于 2010-04-23 13:08:45
回答 3查看 4.5K关注 0票数 8

我发布这个问题是为了请教如何在Windows XP计算机上优化R中多处理器的使用。

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

然而,我想更有效率地做这件事。一种解决方案可能是使用"doMC“和"foreach”包,但这在Windows机器上的R中是不可能的。

例如:

代码语言:javascript
复制
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))

有什么解决方案或建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-04-23 22:14:45

为了完整起见,这里是对Tal的注释的请求答案,它提供了一个简单且可移植的替代方案。答案是运行

代码语言:javascript
复制
 > library(snow)
 > help(makeCluster)

并从Examples:部分的顶部运行前三行代码:

代码语言:javascript
复制
> 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这样的附加软件包可以通过可移植的方式利用这一点。

票数 4
EN

Stack Overflow用户

发布于 2010-04-23 14:40:13

试试doSNOW parallel后端-它在Windows上是开箱即用的。将其与雪套接字簇一起使用。

票数 4
EN

Stack Overflow用户

发布于 2010-04-23 15:02:13

您可以尝试使用REvolution Computing中的doSMP。有关更多信息,请参阅此博客文章: Parallel Multicore Processing with R (on Windows)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2696341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档