質問

グリッドコンピューティング環境でRでいくつかの大きな回帰モデルを実行しています。私の知る限り、グリッドは私により多くのメモリとより高速なプロセッサを提供するだけなので、この質問は強力なコンピューターでRを使用している人にも当てはまると思います。

私が実行している回帰モデルには、多くの観測値と、それぞれ多くのレベルの(10または100)のいくつかの因子変数があります。その結果、回帰は計算集中的になります。スクリプトに3つの回帰を並べてグリッドに送信すると、メモリの制約により終了(クラッシュ)になることに気付きました。ただし、3つの異なるスクリプトとして実行すると、正常に実行されます。

私はいくつかのクリーンアップを行っているので、各モデルが実行された後、モデルオブジェクトを別のファイル、rm(list = ls())に保存してすべてのメモリをクリアし、次のモデルが実行される前にgc()を実行します。それでも、3つすべてを1つのスクリプトで実行するとクラッシュするようですが、仕事を解散するのは問題ないようです。

SYS管理者は、それを分割することが重要であると言いますが、各走行の後に掃除した場合、その理由はわかりません。 3に1つのスクリプトが順番に実行されます。 3つの個別のスクリプトを実行する理由が機能する理由は誰にもありますか?しかし、すべてのモデルを1つのスクリプトで実行すると、Rがメモリの問題が発生しますか?

ありがとう! exl

役に立ちましたか?

解決

読む価値のある同様の質問:GC()コマンドでRでガベージコレクションを強制する rのメモリ使用量

私の経験では、Rはメモリ管理では素晴らしいものではないということです。変数をスコープから外すことをGC()よりもうまく機能させることを期待して、各回帰を関数に入れてみてください。独自のバッチでそれぞれを実行できない特定の理由はありますか?ジョリスが要求したより多くの情報も役立ちます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top