Захват параллельных типов вывода R: альтернативы bigstatsr, которые поддерживают tibble, такие как матрица, и различные типы переменных?

Раньше я использовал bigstatsr для хранения вычисленных значений (double).

Эти значения были вычислены параллельно с использованием doParallel пакет.

Теперь я пытаюсь использовать bigstatsrдля хранения более сложных предметов. Обычно в виде списка.

И только сейчас замечаю, что bigstatsr не поддерживаю list объект или даже character тип...

Есть ли альтернативы, которые я могу использовать для хранения list объекты?

Ниже воспроизводимый пример. Заметить, чтоbigMatrice_sepalLength может фиксировать числовые значения, но bigMatrice_sepalLengthWidth не может захватить список числовых значений и bigMatrice_species не может хранить символьные значения.

В моем фактическом случае использования мне нужно было бы распараллелить некоторые модели прогнозирования.

Обычно выходными данными являются список значений (исторические, прогнозные), список моделей, список параметров моделей и т. Д.

Раньше я мог использовать bigstatsr, потому что я сохранял только прогнозные значения. Хотя на этот раз я хочу захватить и другую информацию.

Спасибо!

library(foreach)
library(doParallel)

bigMatrice_sepalLength <- bigstatsr::FBM(nrow=nrow(iris),ncol=1)
bigMatrice_sepalLengthWidth <- bigstatsr::FBM(nrow=nrow(iris),ncol=1)
bigMatrice_species <- bigstatsr::FBM(nrow=nrow(iris),ncol=1)

cl_start <- Sys.time()
# set nb core to use
#no_cores <- detectCores() - 3
no_cores <- 1

# create cluster
cl <- makeCluster(no_cores, outfile = "")
# prepare cluster
registerDoParallel(cl)
foreach(i = 1:nb_forecast_level, .combine=cbind)  %dopar%  {
  bigMatrice_sepalLength[i,] <- iris[i,1]
  bigMatrice_sepalLengthWidth[i,] <- iris[i,c(1,2)] %>% list()
  bigMatrice_species[i,] <- iris[i,5]
}
stopCluster(cl)
stopImplicitCluster()
cl_end <- Sys.time()
(cl_runtime <- cl_end - cl_start)
as_tibble(bigMatrice_sepalLength[])
as_tibble(bigMatrice_sepalLengthWidth[])
as_tibble(bigMatrice_species[])

Полученные результаты

> as_tibble(bigMatrice_sepalLength[])
# A tibble: 150 x 1
   value
   <dbl>
 1   5.1
 2   4.9
 3   4.7
 4   4.6
 5   5  
 6   5.4
 7   4.6
 8   5  
 9   4.4
10   4.9
# … with 140 more rows
> as_tibble(bigMatrice_sepalLengthWidth[])
# A tibble: 150 x 1
   value
   <dbl>
 1     0
 2     0
 3     0
 4     0
 5     0
 6     0
 7     0
 8     0
 9     0
10     0
# … with 140 more rows
> as_tibble(bigMatrice_species[])
# A tibble: 150 x 1
   value
   <dbl>
 1     0
 2     0
 3     0
 4     0
 5     0
 6     0
 7     0
 8     0
 9     0
10     0
# … with 140 more rows

0 ответов

Другие вопросы по тегам