![](/img/trans.png)
[英]multi-core processing in R on windows XP - via doMC and foreach
[英]parallel processing with R in windows on a single-socket, multi-core CPU
我一直在嘗試在Windows中進行並行處理。 doSNOW聲明它制作了“ SOCK”類型的集群,也稱為“套接字集群”; 我有一個具有8個物理和8個邏輯核心的cpu,我經常在linux中使用它。 我一直在嘗試運行下面的代碼,但是每當嘗試%dopar%選項時,它都會為NULL。 所以我想知道Windows是否只能與多插槽計算機並行運行(我沒有)
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)
這不是您的硬件問題。 這是以下兩項之一或全部:
doParallel
或類似的東西代替。 ::
來確保您的代碼命中dplyr::select
而不是,例如MASS:select
這有效(帶有一些不相關的警告):
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" "702825267483" "889463489603" "702825213497" "702825709792" "702825277420" "702825711115" [11] "702825267476" "702825637101" "702825272128" "889463489597" "702825266967" "702825709327" "702825215576" "702825634582" "702825214098" "702825709754" [21] "702825271510" "702825003959" "702825271503" "702825208332" "702825213510" "702825709747" "702825213503" "702825709815"
“ 702825267506”“ 889463489627” [31]“ 702825267490”“ 702825637170”“ 702825271497”“ 702825711269”“ 702825268114”“ 889463489580”“ 702825219352”“ 702825708375”“ 702825215590”“ 702825708382” [41]“ 702825215583”“ 702825637330”“ 702825214104 “” 702825649418“” 702825203894“” 702825003962“” 702825203887“” 702825712617“” 702825212421“” 702825637293“
請參閱此源中的幾個很好的例子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.