短縮版
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
私がそうすると、すぐにシャットダウンします。