r - 在mlr和parallelMap中可以并行化多个级别吗?例如 mlr.tuneParams 和 mlr.benchmark

标签 r mlr

我正在使用多个学习器(大约 15 个不同的学习器)运行一个 mlr 基准测试,并使用 irace 调整控件进行嵌套重采样。 我的问题是:是否可以在parallelMap 上运行两个并行化级别?

如果我使用 mlr.benchmark 级别,则速度更快的学习器首先结束,只有计算要求更高的学习器保持运行,每个学习器一个线程。所以最终会运行 4 个或者 5 个线程。

如果我使用 mlr.tuneParams 级别,irace 调整控件会生成 6 个线程来评估所有线程,然后在所有线程完成后,它会创建另外 6 个线程。我知道这个方法本质上是顺序的。

我的观点是,无论哪种方式,CPU 核心都没有得到充分利用。 例如,如果 CPU 有 12 个核心,我可以同时运行两个学习器,每个学习器使用 6 个核心进行调优。

现在我正在手动执行此操作:我创建多个 R session 并单独运行它们。

谢谢!

最佳答案

目前,您无法使用 parallelMap 跨多个级别进行并行化。 parallelMap::parallelStart()level 参数仅接受 single level .

这是一个已知的限制,将来可能不会再改变。 在 mlr3所有级别都将使用 future 包并行化。

如果您在代码中嵌套调用 parallelMap() 且未设置显式级别,则管道中的第一个调用将被并行化。

关于r - 在mlr和parallelMap中可以并行化多个级别吗?例如 mlr.tuneParams 和 mlr.benchmark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56762713/

相关文章:

r - Shiny :在 numericInput 中右键单击时提供上下文菜单?

R 堆积条形图绘制 geom_text

java - rJava::.jnew ("edu.stanford.nlp.pipeline.StanfordCoreNLP"中的错误,基本名称(路径))

r - ggplot 自定义 geom_point 形状的图例并删除背景

r - R 的 mlr 包中 makeStackedLearner 的 super.learner

r - 基于模型的优化(在 mlrMBO 中)需要多少次迭代?

删除/自定义 tmap (tm_facets) 中的面边界

R:使用 regr.svm 任务在 mlr 中使用新因子水平进行预测

r - 如何在 R Markdown 中水平绘制决策树?

r - mlrMBO rBayesian通过插入符号优化 R keras 模型的错误