我试图在 R 中使用降雪并行包来实现斐波那契函数。以下是我使用的代码。
vec <- 1:37
fib <- function(x)
{ if (x==0) return(0)
if (x==1) return(1)
if (x==2) return(2)
return(fib(x-1)+fib(x-2))
}
library(snowfall)
sfInit(parallel = TRUE, cpus = 4)
sfExport("vec","fib")
result <- sfLapply(vec,fib)
sfstop()
在运行代码时,我观察了 cpu 的使用情况。虽然我要求使用 4 核,但机器始终使用 2 核。
这是否意味着,我的代码没有使用所有 4 个内核?任何人都可以帮助我指导吗?我可以优化这个性能吗?