многоядерная обработка в R на Windows XP - через doMC и foreach - PullRequest
8 голосов
/ 23 апреля 2010

Я публикую этот вопрос, чтобы спросить совета о том, как оптимизировать использование нескольких процессоров R на компьютере с Windows XP.

В данный момент я создаю 4 сценария (каждый сценарий, например, для (i в 1: 100) и (i в 101: 200) и т. Д.), Которые я запускаю в 4 различных сеансах R одновременно. Кажется, для этого используются все доступные процессоры.

Однако я хотел бы сделать это немного более эффективным. Одним из решений может быть использование «doMC» и пакета «foreach», но это невозможно в R на машине с Windows.

, например

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

Любые решения или советы?

Ответы [ 3 ]

4 голосов
/ 23 апреля 2010

Для полноты вот запрошенный ответ на комментарий Тала, который предоставляет простую и переносимую альтернативу. Ответ состоит из бега

 > 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 может использовать это в переносном виде.

4 голосов
/ 23 апреля 2010

Попробуйте doSNOW параллельный бэкэнд - он поддерживается из коробки в Windows.Используйте его вместе с кластером снежных розеток.

3 голосов
/ 23 апреля 2010

Вы можете попробовать doSMP из REvolution Computing . Для получения дополнительной информации см. Это сообщение в блоге: Параллельная многоядерная обработка с R (в Windows)

...