我正在尝试自学如何使用 Snowfall 包,当我尝试调用第二个函数的函数时遇到了以下问题(这是我最终想要实现的简化用例)。
我目前有:
library (snowfall)
f1 <- function(n) { return (n-1) }
f2 <- function(n) { return (f1(n)^2) }
# initialize cluster
sfInit (parallel=TRUE , cpus=4)
# parallel computing
result <- sfLapply(1:10, f2)
# stop cluster
sfStop ()
但我收到错误消息:
Error in checkForRemoteErrors(val) :
4 nodes produced errors; first error: could not find function "f1"
但是,如果我然后运行 lapply(1:10, f2) 我会收到以下输出:
lapply(1:10, f2)
[[1]]
[1] 0
[[2]]
[1] 1
[[3]]
[1] 4
[[4]]
[1] 9
[[5]]
[1] 16
[[6]]
[1] 25
[[7]]
[1] 36
[[8]]
[1] 49
[[9]]
[1] 64
[[10]]
[1] 81
我最终想用降雪来实现一个多维最小化问题的并行搜索程序,所以肯定需要能够从主并行函数调用函数。
有人能帮忙吗?