首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mlr和parallelMap中,可以并行化多个级别吗?例如mlr.tuneParams和mlr.benchmark

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

Stack Overflow用户
提问于 2019-06-26 06:14:40
回答 1查看 177关注 0票数 2

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

如果我使用mlr.benchmark级别,学习者结束第一次的速度就越快,只有计算要求更高的学习者才会继续运行,每个人都有一个线程。所以最终会有4-5个线程在运行。

如果我使用mlr.tuneParams级别,irace调优控件会产生6个线程并对所有线程进行求值,然后在所有线程都完成后,它会创建另外6个线程。我知道这种方法本质上是顺序的。

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

现在,我手动执行此操作:我创建多个R会话,然后分别运行它们。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2019-06-26 21:14:25

当前使用parallelMap时,您不能跨多个级别进行并行。parallelMap::parallelStart()level参数仅接受single level

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

如果在没有设置显式级别的情况下在代码中嵌套了对parallelMap()的调用,则管道中的第一个调用将被并行化。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56762713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档