系统挂起使用mclapply

时间:2015-06-11 09:23:58

标签: r parallel-processing

我在带有核心i7处理器和4 GB RAM的Ubuntu 14.04 PC上从Linux终端运行此代码:

library(parallel)
workerFunc <- function(n) { return(n^2) }
a <- function(){
  CurrentTime <- Sys.time()
  res <- lapply(values, workerFunc)
  TimeTaken <- Sys.time() - CurrentTime
  print(TimeTaken)
}
b <- function(){
  CurrentTime <- Sys.time()
  numWorkers <- detectCores()
  res <- mclapply(values, workerFunc, mc.cores = numWorkers-2)
  TimeTaken <- Sys.time() - CurrentTime
  print(TimeTaken)
}
c <- function(n){
  values <<- 1:n
  print("Evaluating a : ")
  a()
  print("Evaluating b : ")
  b()
}

以n = 9999999作为参数运行c(),代码运行a(),但在达到b()时,系统挂起。对于n的较小值,因为n = 9999,n = 999,a()b()都可以正常工作。什么是可能的解决方案?

0 个答案:

没有答案