r - 带plyr的多核,MC

标签 r parallel-processing plyr mc

嗨,我正在尝试将R的ddply库中的plyrMC包一起使用。它似乎并没有加快计算速度。这是我运行的代码:

require(doMC)
registerDoMC(4)
getDoParWorkers()
##> 4
test <- data.frame(x=1:10000, y=rep(c(1:20), 500))
system.time(ddply(test, "y", mean))
  # user  system elapsed 
  # 0.015   0.000   0.015
system.time(ddply(test, "y", mean, .parallel=TRUE))
  # user  system elapsed 
  # 223.062   2.825   1.093 

有任何想法吗?

最佳答案

相对于将拆分部分分配到每个核心并获取结果所需的通信成本,mean函数的运行速度过快。

这是分布式计算中经常遇到的“问题”。他们希望这样做会使一切运行得更快,因为他们忘记了成本(节点之间的通信)和 yield (使用多个内核)。

plyr中的并行处理特有的东西:只有函数在多个内核上运行。拆分和合并仍然在单个内核上完成,因此要并行使用plyr函数,您要应用的函数将需要大量的计算工作才能看到好处。

关于r - 带plyr的多核,MC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9808495/

相关文章:

r-markdown:pdf_documents 的德语引号

sqlSave 错误 : table not found

r - 并行预测

c++ - MPI_AllToAllV 导致 MPI_ERR_TRUNCATE

r - 分组和计数实例?

r - R中的线密度热图

r - 如何按 R 数据表中的特定列分组后选择行的子集

haskell - 具有快速随机性和纯度的并行计算?

r - 通过 ddply 中指定的变量在函数内子集

r - 每个日期时间的事件数 R