2016-09-14 25 views
1

Rで1000万回のブートストラップ複製を計算したいのですが、私のマシンに十分なメモリがあるわけではありません(128 GB)。1000万回の複製でブートストラップ - 十分なメモリがありません

は今のところ、私は複数のコアを超えるbootを使用して、これをやっている:

boot_data <- boot(data=data, statistic=correlation_fn, R=10^7, 
        parallel="multicore", ncpus=10) 

でも任意の子プロセスの前でもhtopで監視することで、計算がメモリ不足(計算を開始:

mcfork()のエラー:

考えられる理由:メモリを割り当てることができません

コール:cor_boot_wrap - >ブーツ - > - > lapply - > FUN - > mcfork

執行停止

警告メッセージ:

システムコールが失敗しました:割り当てることができませんメモリ

メモリマップ(おそらくbigmemoryまたはff)でこれを行う別の方法がありますか?この問題は、メモリを増やした別のマシンを使用することで簡単に解決できますが、これは私の選択肢ではありません。

最終的には、信頼区間を計算するためにboot.ci(boot_data, type="bca")を使用しています。したがって、どの中間メソッドもこれと互換性がある必要があります。

+1

実際にどのような分析をしていて、実際に1000万のサンプルが必要ですか? –

+0

これを行うことは可能かもしれませんが、再現可能な例がなければ、私たちがあなたを助けることはあまりありません。しかし、最初にこれを並列化せずにテストし、メモリ要求を外挿するために、nを少しずつ増やして試してください。 – Roland

+0

良いアイデア、私は再現性のある分析に取り組み、質問を修正します。 –

答えて

0

ブートストラップの選択肢を表すインデックスを使用してファイルまたはファイルセットを作成できますか。それぞれのブートストラップから生じるオブジェクト自体も書き込むことができます。次に、各ファイルを読み込んで分析を行います。この問題はおそらく、すべてを一度にメモリ内に作成しようとすることによって引き起こされます。

一度に1000個のブートストラップを実行し、結果を統合することはどうですか?

関連する問題