1

我是 R 中的多核新手,正在尝试降雪包以测试是否可以加快应用功能。

不知道出了什么问题,但我的 sfApply() 的多核实现总是比 apply() 慢 2 倍

任何帮助是极大的赞赏!提前致谢。

单核示例 - 在我的 PC 中完成大约 1.3 秒:

x=2000
y=10000
startTime <- proc.time()

randomX <- sample(1:100,x*y, replace=T)/100+0.5
randomMatrix <- matrix(NA,x,y)
randomMatrix[,] <- randomX
randomRetX <- apply(randomMatrix,2,cumprod)

endTime <- proc.time()
endTime-startTime

降雪实施 - 在我的 PC 中接近 3 秒:

library(snowfall)
sfInit( parallel=TRUE, cpus=4)
x=2000
y=10000

startTime <- proc.time()

randomX <- sample(1:100,x*y, replace=T)/100+0.5
randomMatrix <- matrix(NA,x,y)
randomMatrix[,] <- randomX
randomRetX <- sfApply(randomMatrix,2,cumprod)

endTime <- proc.time()

endTime-startTime
sfStop()
4

0 回答 0