我尝试在 mlr3 中使用并行化运行重采样过程。但我发现它总是比顺序计划慢。这是我的代码和结果:
# load the packages
library(mlr3)
library(future)
library(future.apply)
library(tictoc)
# sequential plan
set.seed(100)
tic()
task_train_cv <- resample(
task = task_train, # the training data is about 60000 rows and 29 cols
learner = lrn("classif.ranger", predict_type = "prob"),
resampling = rsmp("cv", folds = 5),
store_models = TRUE)
toc() # 207.14 sec elapsed
# parallel plan
plan(multisession)
set.seed(100)
tic()
task_train_cv_par <- resample(
task = task_train,
learner = lrn("classif.ranger", predict_type = "prob"),
resampling = rsmp("cv", folds = 5),
store_models = TRUE)
toc() # 268.99 sec elapsed
plan(sequential)
我已经测试了很多次,plan() 中有不同数量的工作人员,并且在不同的笔记本电脑上运行,并行计划总是较慢。它也发生在超参数调整和嵌套重采样过程中。但是当我检查 Windows 中的任务管理器时,我可以看到会话正在后台运行。
我在 mlr3 中的并行化设置有问题吗?谢谢!