Zhi*_*Jia 49 parallel-processing r domc doparallel
关于函数R doParallel和doMCR 之间的区别是什么foreach?doParallel支持windows,unix-like,同时doMC仅支持unix-like.换句话说,为什么doParallel不能doMC直接替换?谢谢.
更新:
doParallel是建立在parallel,这基本上是对等合并multicore,并snow和自动使用系统的相应工具.因此,我们可以doParallel用来支持多系统.换句话说,我们可以doParallel用来代替doMC.
参考:http://michaeljkoontz.weebly.com/uploads/1/9/9/4/19940979/parallel.pdf
顺便说一下,registerDoParallel(ncores=3)和之间有什么区别
cl <- makeCluster(3)
registerDoParallel(cl)
Run Code Online (Sandbox Code Playgroud)
它似乎registerDoParallel(ncores=3)可以自动停止集群,而第二个不会自动停止和需要stopCluster(cl).
参考:http://cran.r-project.org/web/packages/doParallel/vignettes/gettingstartedParallel.pdf
Ste*_*ton 28
该doParallel包是合并doSNOW和doMC,就像parallel是一个合并snow和multicore.但是虽然doParallel具有所有的功能doMC,但是康卡特分析的Rich Calaway告诉我,他们想要保留doMC,因为它在某些情况下更有效率,即使doMC现在使用parallel就像doParallel.我没有亲自运行任何基准来确定是否以及何时存在显着差异.
我倾向于doMC在Linux或Mac OS X计算机,doParallelWindows计算机和doMPILinux集群上使用,但doParallel确实适用于所有这些平台.
至于不同的注册方法,如果你执行:
registerDoParallel(cores=3)
Run Code Online (Sandbox Code Playgroud)
在Windows机器上,它将隐式创建一个集群对象供以后使用clusterApplyLB,而在Linux和Mac OS X上,不会创建或使用集群对象.简单地记住核心数量,并在mc.cores以后调用时将其用作参数的值mclapply.
如果你执行:
cl <- makeCluster(3)
registerDoParallel(cl)
Run Code Online (Sandbox Code Playgroud)
然后,clusterApplyLB无论平台如何,都将使用已注册的集群对象.您是正确的,在这种情况下,您有责任在创建集群对象后关闭集群对象,而隐式集群对象会自动关闭.
| 归档时间: |
|
| 查看次数: |
12773 次 |
| 最近记录: |