首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在单套接字多核CPU上使用windows中R的并行处理

在单套接字多核CPU上使用windows中R的并行处理
EN

Stack Overflow用户
提问于 2018-06-27 22:34:40
回答 1查看 1.2K关注 0票数 0

我一直试图在windows中创建一个并行进程;doSNOW声明它生成"SOCK“类型的集群,也称为”套接字集群“;我有一个具有8个物理核和8个逻辑核的单个cpu,这是我在linux中经常使用的;我一直试图运行下面的代码,但是每当我尝试使用%dopar%选项时,它都会给我一个空结果;因此,我想知道窗口是否只与多套接字机器(我没有)并行工作。

代码语言:javascript
复制
library(jsonlite)
library(doSNOW)
library(foreach)
library(dplyr)

claves <- c("I11D67", "I11D66", "I11D65", "I11D64", "I11D63", "I11D62", 
"I11D61", "I11C69", "I11D79", "I11D78", "I11D77", "I11D76", "I11D75", 
"I11D74", "I11D73", "I11D72", "I11D71", "I11C79", "I12C82", "I12C81", 
"I11D89", "I11D88", "I11D87", "I11D86", "I11D85")

cl <- makeCluster(8)
registerDoSNOW(cl)

foreach(i = claves, .combine=rbind, .errorhandling = "remove") %do% { 
url <- sprintf("http://www.beta.inegi.org.mx/app/api/buscador/busquedaTodos/%s_A/RANKING/es", i)
ea <- fromJSON(url)
ea  %>% select(TITULO, CVE_UNICA, EDICION)
} -> results

stopCluster(cl)
EN

回答 1

Stack Overflow用户

发布于 2018-06-27 23:16:11

你的硬件没问题。是这两件事中的一件或两件事:

  1. 雪在Windows上运行有问题。你会想要在doParallel或类似的东西中替代。
  2. 使用::确保您的代码符合dplyr::select而不是dplyr::select,例如MASS:select

这是可行的(有一些不相关的警告):

代码语言:javascript
复制
if(!require(doParallel)) install.packages("doParallel")
library(foreach)
library(doParallel)
workers <- makeCluster(2) # start small to test
registerDoParallel(workers)

foreach(i = claves, .combine=rbind, .errorhandling = "remove") %do% { 
  url <- sprintf("http://www.beta.inegi.org.mx/app/api/buscador/busquedaTodos/%s_A/RANKING/es", i)
  ea <- fromJSON(url)
  ea  %>% dplyr::select(TITULO, CVE_UNICA, EDICION)
} -> results

stopCluster(cl)



dim(results)

1 50 39 results$CVE_UNICA 1 "889463489610“"702825634490”702825271480“702825637149”7028252637149 "702825267483“"889463489603”"702825213497“"702825709792”"702825277420“”70282571111“11”“70282525267476 "702825637101”702825272128“88946489597”"702825266967“”702870709327“”702825251576“”7028534582“”702825251498“”7028257054“21”7027251510“70282525251559”282825251597“28282525252870705602 "702825709327”“7028252550598”“70282525554”21“702825251510” "702825267506“"889463489627”31 "702825267490“"702825637170”"702825271497“"702825711269”"702825268114“"889463489580”"702825219352“”702825258375“"702825215590”7028258382“41 "702825215583”702825637330“702825214104”702825649418“702825649418 "702825203894”"702825003962“70282525203887”70282512617“”7025212421“”7028252537293“

请参阅此来源中的几个好示例。

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

https://stackoverflow.com/questions/51072333

复制
相关文章

相似问题

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