1

我在网格计算环境中在 R 中运行一些大型回归模型。据我所知,网格只是给了我更多的内存和更快的处理器,所以我认为这个问题也适用于那些在功能强大的计算机上使用 R 的人。

我正在运行的回归模型有很多观察结果,以及几个因子变量,每个变量都有很多(10 或 100)个水平。因此,回归可能会变得计算密集。我注意到,当我在脚本中排列 3 个回归并将其提交到网格时,由于内存限制,它会退出(崩溃)。但是,如果我将它作为 3 个不同的脚本运行,它运行良好。

我正在做一些清理工作,所以在每个模型运行后,我将模型对象保存到一个单独的文件 rm(list=ls()) 以清除所有内存,然后在运行下一个模型之前运行 gc()。尽管如此,在一个脚本中运行所有三个似乎都会崩溃,但拆分工作似乎很好。

系统管理员说打破它很重要,但我不明白为什么,如果我在每次运行后进行清理。3 in one script 无论如何都会按顺序运行它们。有谁知道为什么运行三个单独的脚本有效,但是在一个脚本中运行所有模型会导致 R 出现内存问题?

谢谢!外泄

4

1 回答 1

0

值得一读的类似问题: 使用 gc() 命令强制垃圾收集在 R 中运行 R 中的 内存使用

我的经验是 R 在内存管理方面并不出色。您可以尝试将每个回归放在一个函数中,希望让变量超出范围比 gc() 效果更好,但我不会屏住呼吸。是否有特殊原因您不能在自己的批次中运行每个?Joris 要求的更多信息也会有所帮助。

于 2011-02-28T22:05:48.223 回答