В чем причина падения скорости parLapply в приложении R Shiny? - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть функция parLapply за кнопкой действия приложения Shiny. Думайте об этом как:

ui.R

library(parallel)
actionButton("do", "some text")

server.R

optimize <- function(x){do something complex}

observeEvent(input$do,{
  exetime <- system.time({      
    numCores <- detectCores()
    cl <- makeCluster(numCores-2,type="SOCK") 
    outputs <- parLapply(cl,1:10000,optimize)
    stopCluster(cl)
  })
})    

Каждый раз, когда я нажимаю кнопку действия, блестящее приложение будет запускать функцию parLapply параллельно, чего я и хотел. Мой вопрос заключается в том, что время выполнения parLapply увеличивается, поскольку я продолжаю нажимать на кнопку действия. Теоретически, я ожидаю, что время выполнения останется несколько стабильным, независимо от количества нажатий на кнопку действия.

Более подробное исследование использования ЦП и памяти показало, что более длительное время выполнения в последующих запусках фактически было связано с увеличением использования памяти параллельными сеансами - см. Скриншоты ниже. Похоже, что хотя я и позвонил stopCluster(cl), все еще была некоторая информация, которая передавалась от бега к бегу.

Первый запуск

Седьмой прогон

Что я могу сделать, чтобы исправить это нежелательное увеличение памяти?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...