2
我試着用並行程序包在R中測試並行。但在我的例子中(如下面的代碼),並行任務的時間大於單個任務的時間。任何人都可以給我一些建議?在R問題中並行運行
非常感謝!
##parSquareNum.R
strt <- Sys.time()
workerFunc <- function(n) { return(n^2) }
values <- 1:1000000
library(parallel)
## Number of workers (R processes) to use:
cores <- detectCores()
## Set up the ’cluster’
cl <- makeCluster(cores-1)
## Parallel calculation (parLapply):
res <- parLapply(cl, values, workerFunc)
## Shut down cluster
write(Sys.time()-strt, 'parallel.txt')
stopCluster(cl)
##singleSquareNum.R
## The worker function to do the calculation:
strt <- Sys.time()
workerFunc <- function(n) { return(n^2) }
## The values to apply the calculation to:
values <- 1:1000000
## Serial calculation:
res <- lapply(values, workerFunc)
##print(unlist(res))
write(Sys.time() -strt, 'single.txt')
併發性不太可能對核心的簡單任務有益,因爲分派和重組過程也需要時間。劃分出複雜的任務將需要證明好處。 –