Я пытался сделать параллельный процесс в Windows; doSNOW заявляет, что создает кластеры типа «SOCK», которые также называют «кластером сокетов»; У меня есть один процессор с 8 физическими и 8 логическими ядрами, которые я часто использую в Linux; Я пытался запустить приведенный ниже код, но всякий раз, когда я пробую опцию% dopar%, она дает мне нулевой результат; поэтому мне интересно, если 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)