0

Linux で R をバッチで送信しようとしていますが、通常、送信後 30 ~ 40 分でプロセスが停止し、以下のメッセージが表示されます。このメッセージは、Linux シェルではなく、.Rout ファイルに表示されます。送信するには、R CMD BATCH myprogram.R &を使用します。

terminate called after throwing an instance of 'CxException'
  what():

R 自体からサブミットされた場合は問題なく動作しますが、バッチでサブミットされると、何らかの理由で実行が途中で停止します。45000 x 10000 マトリックスの作成中にプロセスが停止する

プログラムの概要はこちら。まず、CSV から 3 つのファイルを読み取ります。次に、約 3.7GB の RAM を占有する 45000 x 10000 のマトリックスを作成します。マトリックスはドキュメント用語マトリックスであり、用語がドキュメント内にある場合は 1 が割り当てられ、それ以外の場合は 0 が割り当てられます。次に、そのマトリックスを使用して結果を生成するいくつかの手順を実行します。その時点で、RAM は約 4.5GB に増加し、そのレベルにとどまります。Linux でジョブを監視していますが、残りのプロセスを実行するのに十分な空きリソース (CPU と RAM の両方) があるようです。

それを引き起こしている可能性のあるアイデア/提案はありますか?

明確化の追加:
1) R バージョンは Revolution R v.6.2 です。2) 追加のパッケージは使用されていません。

4

2 に答える 2

0

これはRev-Rが直すべきものです。ただし、R セッション内でソース関数を使用してコードを実行できます。構文は次のとおりです。

R -e 'source("Your_Script.R")'
于 2015-12-05T02:02:45.077 に答える
0

Rscript.exeよりも を使用すると、運が良くなる可能性がありますR CMD BATCH

そのために使用する構文は次のとおりです。

"%PATH TO EXE%\Rscript.exe" "%PATH TO SCRIPT%\script.R" "INPUT ARGUMENTS (if any)"

于 2013-08-30T20:05:22.453 に答える