Как эффективно сохранить несколько файлов .rds с распараллеливанием?

Я применяю функцию к другим данным ~ 2000 раз и хочу сохранять .rds после каждой итерации. Я распараллелил код с помощью furrr / foreach, так что на данный момент он довольно эффективен. Однако я не знаю, как сохранять промежуточные результаты каждой итерации и одновременно сохранять время вычислений. Итак, возможно ли эффективно сохранить несколько файлов .rds параллельно?

Воспроизводимый пример:

library(tictoc)
library(future)

plan(multiprocess)

custom_f <- function(x) {
  saveRDS(rep(seq(x:(x+10000), 10000) ), 
          file = paste0(x,'.RDS'), 
          compress = F)
}

tic()
furrr::future_map(1:10, custom_f)
toc()
# 95.38 sec elapsed


tic()
for (i in 1:10){
  custom_f(i)
}
toc()
# 62.93 sec elapsed


person Onlise    schedule 20.01.2020    source источник
comment
Привет, насколько я понимаю, вы хотите сохранить файл .rds. Надеюсь, эта ссылка поможет решить вашу проблему. stackoverflow.com/ questions / 52229140 /   -  person Tushar Lad    schedule 20.01.2020
comment
Я не понимаю, в чем ваш вопрос. saveRDS() слишком медленно для вас? Сохранение промежуточных результатов всегда приводит к потере времени, поскольку это дополнительная работа, которую должен выполнять компьютер. Вы можете уменьшить время, необходимое для сохранения rds, с помощью compress = FALSE или с помощью функции сохранения из другого пакета: stackoverflow.com/a/ 58701560/5028841   -  person JBGruber    schedule 20.01.2020