【问题标题】:How to realize nested parallel in R on windows platform如何在windows平台的R中实现嵌套并行
【发布时间】:2014-06-23 06:59:12
【问题描述】:

我尝试在 R 的并行包中使用parApply()

 cl <- makeCluster(16)
 cl.boot <-makeCluster(8)

在我的程序中,我首先调用t(parApply(cl,rv,1,sim.one.test))。在函数sim.one.test 中,调用函数boot()。在boot() 中,我使用

 bs.resample <- t(parApply(cl.boot,rv.boot,1,function(x) bs.mle(n1,n2,x,s,t1,t2,m,theta)))

简单地说,外部函数是sim.one.test(),内部函数是bs.mle()。 错误信息为invalid connection。我猜这是因为不支持嵌套并行。来自stackoverflow上的另一个questions,建议我应该使用mcapply(),它只能在Linux上应用,但我在Windows平台上运行程序。 Windows平台上嵌套并行计算有什么解决方案吗?谢谢。

【问题讨论】:

    标签: windows r parallel-processing scientific-computing


    【解决方案1】:

    您认为为什么需要嵌套并行化?这只会增加您的并行化开销(如果它确实有效,我对此表示怀疑)。从概念上讲,仅并行化外部循环要好得多(前提是它包含足够的迭代并且或多或少是负载平衡的)。

    但是,您可以将nested foreach loops 与并行后端一起使用。这会将您的嵌套循环转换为一个循环,然后再将其发送给工作人员。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-27
      • 2014-02-13
      • 2016-03-13
      • 1970-01-01
      • 2020-06-10
      • 2021-03-15
      • 2023-01-31
      • 2012-06-26
      相关资源
      最近更新 更多