首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在windows平台上实现R中嵌套并行

如何在windows平台上实现R中嵌套并行
EN

Stack Overflow用户
提问于 2014-06-23 14:59:12
回答 1查看 335关注 0票数 0

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

代码语言:javascript
运行
复制
 cl <- makeCluster(16)
 cl.boot <-makeCluster(8)

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

代码语言:javascript
运行
复制
 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。我猜这是因为不支持嵌套并行。从另一个关于堆栈溢出的questions上,有人建议我应该使用mcapply(),它只能在Linux上应用,但我在Windows平台上运行程序。Windows平台上的嵌套并行计算有什么解决方案吗?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-06-23 15:12:22

为什么你认为你需要嵌套并行化?这只会增加你的并行化开销(如果它能工作的话,我对此表示怀疑)。从概念上讲,到目前为止,只对外部循环进行并行化要好得多(只要它包含足够的迭代并且或多或少是负载平衡的)。

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

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

https://stackoverflow.com/questions/24360109

复制
相关文章

相似问题

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