- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
R 中关于 foreach
函数的 doParallel
和 doMC
有什么区别? 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)
似乎registerDoParallel(ncores=3)
可以自动停止集群,而第二个不会自动停止,需要stopCluster(cl)
。
引用:http://cran.r-project.org/web/packages/doParallel/vignettes/gettingstartedParallel.pdf
最佳答案
doParallel
包是 doSNOW
的合并和doMC
,相当于 parallel
是 snow
的合并和multicore
。但尽管doParallel
具有 doMC
的所有功能,革命分析公司的 Rich Calaway 告诉我,他们想保留 doMC
因为它在某些情况下效率更高,尽管doMC
现在使用parallel
就像 doParallel
。我个人没有运行任何基准测试来确定是否以及何时存在显着差异。
我倾向于使用doMC
在 Linux 或 Mac OS X 计算机上,doParallel
在 Windows 计算机上,以及 doMPI
在 Linux 集群上,但是 doParallel
确实适用于所有这些平台。
至于不同的注册方式,如果执行:
registerDoParallel(cores=3)
在 Windows 计算机上,它将隐式创建一个集群对象以供以后与 clusterApplyLB
一起使用。 ,而在 Linux 和 Mac OS X 上,不会创建或使用任何集群对象。核心数量被简单地记住并用作 mc.cores
的值。稍后调用 mclapply
时争论.
如果执行:
cl <- makeCluster(3)
registerDoParallel(cl)
那么注册的集群对象将与clusterApplyLB
一起使用与平台无关。您是对的,在这种情况下,您有责任在创建集群对象后关闭它,而隐式集群对象会自动关闭。
关于r - R中doMC和doParallel的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28989855/
registerDoParallel 中的集群和核心有什么区别?使用 doParallel 包时? 我的理解是否正确,在单台机器上这些是可以互换的,我会得到相同的结果: cl library(doP
以下问题是与此处描述的问题相关的非常详细的问题。 Previous Question 使用在 R 版本 3.2.3 的 c4.8xlarge(36 核)上启动的 Ubuntu Server 14.04
我正在尝试编写一个具有多线程功能的 CRAN 包。我使用 doSNOW 实现了完美的解决方案,但该软件包已被 CRAN 团队标记为“取代”,他们要求我切换到 doParallel 解决方案。这很好,但
我在 R 中创建了一个顺序模拟来迭代一个过程 10,0000 次。这需要大约 70 分钟,所以我决定与 doParallel 包并行尝试相同的事情。 我的 foreach 循环调用了一个名为“inv.
我在局域网上有两台服务器,全新安装了 Centos 6.4 minimum 和 R 3.0.1。两台计算机都安装了 doParallel、snow 和 snowfall 包。 服务器可以通过 ssh
我正在尝试使用 doParallel 包来估计多个非参数模型。我的问题似乎与 np 包有关。看看这个可重现的例子: library(np) library(doParallel) df 修复
我一直在使用apply将data.frame的每一行提交到R中的function使用Windows 10。这种方法有效。然而,随着函数变得更加复杂并且数据集更大,这种方法变得不可行。因此,我希望使用并
考虑使用并行 foreach 生成随机值的非常基本(且效率低下)的代码: cl <- makeCluster(2) registerDoParallel(cl) foreach(i = 1:100)
我一直在使用apply将data.frame的每一行提交到R中的function使用Windows 10。这种方法有效。然而,随着函数变得更加复杂并且数据集更大,这种方法变得不可行。因此,我希望使用并
我正在尝试设置一个并行任务,其中每个工作人员都需要进行数据库查询。我正在尝试为每个工作人员设置一个连接,如 this question 中所示但每次我尝试它都会返回 无论我注册了多少 worker 。
我正在一个 12 节点集群上运行一个并行进程。 并且想知道是否有办法在 foreach 期间获取节点 ID 或节点编号或节点名称称呼? 像这样的东西: foreach(i = 1:12, .combi
我有这段代码用于并行写入我的结果。我在 R 中使用 foreach 和 doParallel 库。 output_location='/home/Desktop/pp/' librar
我编写了一个运行良好的脚本,但它似乎并未进行并行处理。我尝试将内核从 3 个更改为 16 个,但生成数据的速度没有改变。谁能告诉我我做错了什么以及如何让它发挥作用? setwd("E:/Infecti
当我将 caret 与新配方包一起使用时,即 caret::train.recipe(),如果 doParallel 也用于注册并行后端,我会收到一条错误消息。附件是一个可重现的示例(插入符号文档中官
我正在尝试合并一个大 data.frame用一个小的,并并行计算。下面的代码完美运行,最大化了我机器的所有内核: len <- 2000000 set.seed(666) dat = paste(sa
我正在使用发布的示例代码 here使用 doParallel + foreach 显示 progress_bar(来自 progress 包)。然而,那里的解决方案使用 doSNOW(例如我用于测试的
我正在为 R 构建一个包,我希望它能够跨平台。我在Linux下开发,函数mclapply将从 parallel 开始使用包裹。 Windows(使用 doParallel )不支持此软件包。我真的很喜
如果我运行 foreach... %dopar%在不注册集群的情况下,foreach 会引发警告,并按顺序执行代码: library("doParallel") foreach(i=1:3) %dop
我有一个包含循环的函数 myfun = function(z1.d, r, rs){ x = z1.d[,r] or.d = order(as.vector(x), decreasing=TR
我必须运行大量随机森林模型,因此我想在我的 8 核服务器上使用 doParallel 来加快进程。 然而,某些模型需要比其他模型更长的时间,甚至可能会抛出错误。我想并行运行 8 个模型,如果一个模型抛
我是一名优秀的程序员,十分优秀!