Smoke test for parallelism in stacks' member fitting re: tidymodels/stacks#234.
# pak::pak("stacks")
library(stacks)
reg_st <-
stacks() %>%
add_candidates(reg_res_lr) %>%
add_candidates(reg_res_svm) %>%
add_candidates(reg_res_sp)
reg_st <- blend_predictions(reg_st)
system.time({
reg_st <- fit_members(reg_st)
})
#> user system elapsed
#> 0.370 0.006 0.513
Created on 2025-05-02 with reprex v2.1.1
Tune warns here, but stacks knows what to do with doParallel still in this case.
# pak::pak("stacks")
library(stacks)
library(doParallel)
#> Loading required package: foreach
#> Loading required package: iterators
#> Loading required package: parallel
registerDoParallel(cores = 4)
reg_st <-
stacks() %>%
add_candidates(reg_res_lr) %>%
add_candidates(reg_res_svm) %>%
add_candidates(reg_res_sp)
reg_st <- blend_predictions(reg_st)
#> Warning: ! tune detected a parallel backend registered with foreach but no backend
#> registered with future.
#> ℹ Support for parallel processing with foreach was soft-deprecated in tune
#> 1.2.1.
#> ℹ See ?parallelism (`?tune::parallelism()`) to learn more.
system.time({
reg_st <- fit_members(reg_st)
})
#> user system elapsed
#> 0.313 0.127 0.338
Created on 2025-05-02 with reprex v2.1.1
...with the analogous multisession:
# pak::pak("tidymodels/stacks")
library(stacks)
library(future)
plan(multisession(workers = 4))
reg_st <-
stacks() %>%
add_candidates(reg_res_lr) %>%
add_candidates(reg_res_svm) %>%
add_candidates(reg_res_sp)
reg_st <- blend_predictions(reg_st)
system.time({
reg_st <- fit_members(reg_st)
})
#> user system elapsed
#> 0.320 0.016 0.464
Created on 2025-05-02 with reprex v2.1.1
Or, using mirai:
# pak::pak("tidymodels/stacks")
library(stacks)
library(future)
plan(future.mirai::mirai_multisession(workers = 4))
reg_st <-
stacks() %>%
add_candidates(reg_res_lr) %>%
add_candidates(reg_res_svm) %>%
add_candidates(reg_res_sp)
reg_st <- blend_predictions(reg_st)
system.time({
reg_st <- fit_members(reg_st)
})
#> user system elapsed
#> 0.168 0.010 0.393
Created on 2025-05-02 with reprex v2.1.1