我想并行化一个名为 unparallelizedfnc 的函数。该函数调用其他四个函数(计算时间较长)并存储结果。最后将结果合并。考虑我的函数的一个玩具示例(当然,这不是我调用的四个真实函数,仅用于演示)。
如何在具有多核的计算机上并行计算 result1、result2、result3 和 result4?我希望它可以在 Windows、Linux 和 Mac OSX 上运行。在这种情况下,无需对并行化版本进行基准测试(由于开销,它会变慢,但在我的真实代码中它会更快)。
如果四个结果是相同的函数(但具有不同的数据),我可以只使用并行 for 循环(foreach)或并行应用,但在这种情况下,函数是不同的。
unparallelizedfnc <- function(x) {
result1 <- sum(x)
result2 <- median(x)
result3 <- min(x)
result4 <- max(x)
result <- mean(c(result1,result2,result3, result4))
result
}
unparallelizedfnc(rnorm(100000))