Ale*_*lex 6 parallel-processing r mc plyr
嗨,我想在包中使用R ddply
中的plyr
库MC
.它似乎没有加快计算速度.这是我运行的代码:
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
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Jos*_*ich 10
mean
相对于将拆分部分分配到每个核心并检索结果所需的通信成本,该功能运行得太快.
这是人们在分布式计算中遇到的常见"问题".他们希望它能让一切运行得更快,因为他们忘记了成本(节点之间的通信)以及好处(使用多个核心).
特定于plyr中并行处理的东西:只有函数在多个核上运行.拆分和组合仍然在单个核心上完成,因此当您并行使用plyr函数时,您正在应用的函数必须非常计算密集才能看到好处.