精简版
有没有办法阻止 R 在 unix 机器上使用任何虚拟内存?每当它发生时,都是因为我搞砸了,然后我想中止计算。
更长的版本
我正在与其他几个人共享的强大计算机上处理大型数据集。有时我会启动需要更多 RAM 的命令,这会导致 R 开始交换并最终冻结整个机器。通常我可以通过ulimit
在我的~/.bashrc
ulimit -m 33554432 -v 33554432 # 32 GB RAM of the total 64 GB
这会导致 R 在尝试分配比可用内存更多的内存时抛出错误并中止。snow
但是,如果我在并行化(通常使用包)时犯了这种错误,ulimit
则没有任何效果,并且机器无论如何都会崩溃。我猜这是因为snow
将工作人员作为不在 bash 中运行的单独进程启动。如果我改为尝试在我的中设置ulimit
,~/.Rprofile
我只会收到一个错误:
> system("ulimit -m 33554432 -v 33554432")
ulimit: 1: too many arguments
有人可以帮我想办法做到这一点吗?
侧轨
为什么我不能设置一个ulimit
0 的虚拟内存bash
?
$ ulimit -m 33554432 -v 0
如果我这样做,它很快就会关闭。