我正在探索R中的并行编程,我对foreach函数的工作原理有很好的理解,但我不明白parallel、doparallel、doMC、doSNOW、SNOW、multicore等之间的区别。
经过大量阅读,我发现这些软件包的工作原理因操作系统而异,我看到一些软件包使用多核这个词,而另一些软件包使用集群(我不确定它们是否不同),但除此之外,还不清楚它们各自有什么优缺点。
我在Windows上工作,我想使用复制权重并行地计算标准误差,这样我就不必一次计算一个复制(如果我有n个核心,我应该能够一次做n个复制)。我可以使用doSNOW实现它,但是看起来plyr和R社区一般都使用doMC,所以我想知道使用doSNOW是不是一个错误。
问候你,卡尔
发布于 2015-10-22 03:40:57
我的理解是,parallel是snow和multicore的结合体,旨在结合两者的最佳部分。
对于单机并行计算,我发现parallel非常有效。
对于使用多台机器组成的集群的并行计算,我从来没有使用parallel成功地完成过集群设置,但是使用snow成功地完成了集群设置。
我从未使用过任何do*包,所以恐怕我无法对此发表评论。
https://stackoverflow.com/questions/33267052
复制相似问题