【发布时间】:2018-10-29 21:51:21
【问题描述】:
假设我有一个函数f() 和一个向量d
f <- function(x) dexp(x, 2)
d <- runif(10, 1, 5)
现在我想执行一个类似的 for 循环
dnew <- numeric(length(d))
for (i in seq_along(dnew)){
dnew[i] <- f(d[i])
}
。如何并行执行此操作?
【问题讨论】:
-
“如何...并行”应该以cran.r-project.org/web/views/HighPerformanceComputing.html 开头。我认为很多人在使用
foreach包时很幸运,其他人也觉得future很棒。 -
foreach 包对我没有帮助。如果我使用 foreach 会花费更多时间
-
好的。如果正确使用
foreach没有加快速度,那么(1)启动成本不会抵消并行执行; (2) 你做错了或者可以做得更好;或 (3) 其他我们不知道的事情。一般来说,为了使并行化运行良好,计算时间必须大大超过启动成本(如果合适的话,fork R、加载库、传输数据等)。如果您包含foreach代码,也许精通该软件包的人可以帮助提高其性能。
标签: r parallel-processing parallel.foreach