- 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/
考虑 data.frame 上的标准分组操作: library(plyr) library(doMC) library(MASS) # for example nc % partition(g, cl
我需要做一些模拟,出于调试目的,我想使用 set.seed得到相同的结果。这是我正在尝试做的示例: library(foreach) library(doMC) registerDoMC(2) set
我已经开始使用 R 的 doMC 包作为并行化 plyr 例程的并行后端。 并行化本身似乎工作正常(尽管我还没有正确地对加速进行基准测试),我的问题是日志记录现在是异步的,来自不同内核的消息混合在一起
我在 R 中构建了一个函数(在 Ubuntu 12.04 LTS 64 位、4 核 i7 服务器和多线程和 6gb 内存上运行),我使用标准包安装了 R: sudo apt-get install r
我有一个相当大的数据集(约 1.4m 行),我正在对它进行一些拆分和总结。整个运行需要一段时间,我最终的应用依赖频繁运行,所以我的想法是使用doMC和 .parallel=TRUE像这样用plyr标记
这是让我困惑的地方: 当您使用 foreach 安排一系列在内容方面同质但在处理时间(事前未知)方面异质的任务时,foreach 究竟如何按顺序处理这些令人尴尬的并行任务? 例如,我注册了 4 个线程
我试图让用于在 R 中进行并行处理的 foreach 包正常工作,但我遇到了几个问题: Windows 的 CRAN 上不存在使 foreach 工作所需的 doMC 包。一些博客建议 doSNOW
我使用的是 Win7 操作系统,Rstudio 中装有 R 3.3.1。目的是将 glmnet 与并行处理结合使用。来自 ?glmnet 帮助: parallel: If TRUE, use para
我想在 Linux 中运行并行计算。在我设法在 Windows 中这样做之后,我需要在 Linux 中运行下面的函数。我将包 doSnow 更改为应该在 Linux 中工作的 doMC,但我收到与 m
我发布这个问题是为了征求有关如何在 Windows XP 机器上优化 R 中多处理器使用的建议。 目前我正在创建 4 个脚本(每个脚本都有例如 for (i in 1:100) 和 (i in 101
对于像 doMC 和 doSMP 这样的包,我得到了警告和无法库(doMC)。如下所示,我对子选择没有问题,因此没有文件/目录权限问题。还尝试了 repo= http://cran.us.r-proj
我有一个非常适用于并行处理的模拟函数。我设法让它运行多核(在 EC2 cc2.8xlarge 上最多 32 个核)。 现在我想知道我是否也可以使用 Redis 使其在多个实例中并行运行多个内核。 我的
我已经在不同的机器上运行了一些测试代码,总是得到相同的结果。我认为各种 do... 包背后的理念是它们可以互换用作 foreach 的 %dopar% 的后端。为什么情况并非如此? 例如,此代码片段有
我是一名优秀的程序员,十分优秀!