RStudio服务器增加内存以进行分配?

时间:2016-10-20 01:40:14

标签: r memory server rstudio glm

亲爱的Stackoverflow社区,

我正在运行增量(前向和后向)glm,其中数据集包含190个变量。我试图在RStudio服务器上使用glm捕获只有统计上显着的变量,并在弹出错误时停止说明"无法分配内存。"一位同事提到我使用memory.limit()来扩展R会话中的内存,但这仅适用于Windows。我在线搜索过,大多数人建议使用R_MAX_MEM_SIZE,但据我所知,只有在使用命令提示符运行R程序时才会使用。有没有其他人可以建议通过RStudio脚本来控制这个或类似memory.limit()函数的东西?我运行在22个内核上,主数据文件DATOS的大小为150MB。此外,服务器有300GB的内存,这是很多做glm。在22个核心中,我假设主数据文件被传递到每个节点,但是不应该通过添加GLM计算来占用每个节点的整个内存。我知道有一个名为Bigmemory的软件包处理大型数据集,但我再也不相信我的大数据集。下面是我的脚本的简单示例,我正在尝试做的以及错误消息的屏幕截图。我相信主要错误发生在glm具有大量重要的预测变量/变量,它超出了Rstudio默认的内存限制。如果还有其他需要的信息,请告诉我,以便清除任何混淆。提前感谢您提供的任何见解。

 GLMFUNC <- function(nombres, DATOS, FORMULA, FAMILY, NA_ACTION =  na.exclude, pvalue = 0.05)
 {
library(foreach) # for loop to parallelize
library(doMC) # create the number of cores to use

# set the number of cores to use
registerDoMC(22)  # 22 number of CPU cores

form <- FORMULA
j = 1

repeat
{ 
pvalue_forloop <- foreach (i = 1:length(nombres), .combine = rbind) %dopar%
{
  if (j == 1) {
    form_temp <- paste(form, nombres[i], sep=" ")
  } else {
    form_temp <- paste(form, nombres[i], sep=" + ")
  }

  GLM <- glm(formula = as.formula(form_temp), na.action = NA_ACTION, # exclude NA values where they exist
             data = DATOS, family = FAMILY)

  temp <- as.numeric(as.character(coef(summary(GLM))[,4][length(GLM$coefficients)]))

  return(c(temp,nombres[i]))
}

 .... # does other stuff
 }
 }

以下是我正在使用的服务器上的一些信息

 Sys.info()
                          sysname                               release 
                          "Linux"          "2.6.32-504.16.2.el6.x86_64" 
                          version                              nodename 
 "#1 SMP Wed Apr 22 06:48:29 UTC 2015"               "cluster01.chapman.edu" 
                          machine                                 login 
                         "x86_64"                             "unknown" 

Error Message

0 个答案:

没有答案