используя glmnet с будущим - PullRequest
0 голосов
/ 12 октября 2018

В Windows у меня возникают трудности при использовании library(doparallel), который, похоже, дает сбой после нескольких glmnet вызовов

Так что я пытаюсь использовать пакет future (https://github.com/HenrikBengtsson/future) с glmnet но я не уверен, каков наилучший способ продолжить здесь.

Вот простой пример (не распараллеленный)

X = matrix(rnorm(1e4 * 200), 1e4, 200)
Y = rnorm(1e4)
system.time(cv.glmnet(X, Y))
user  system elapsed 
3.42    0.22    3.67 

Как я могу использовать фьючерсы, чтобы использовать все мои 4ядра (на моем локальном компьютере - нет распределенного кластера, как при параллельном выполнении glmnet в R )

Спасибо!

1 Ответ

0 голосов
/ 12 октября 2018

Это похоже на работу.По крайней мере, пользовательское время намного меньше, но системное время увеличилось из-за параллельных издержек.

library("doFuture")
registerDoFuture()
plan(multiprocess, workers = 4L)

system.time(cv.glmnet(X, Y, parallel = TRUE))

user  system elapsed 
0.46    0.17    5.59 

versus

system.time(cv.glmnet(X, Y))
   user  system elapsed 
   2.33    0.05    2.39 
...