2016-09-14 15 views
1

Я хотел бы рассчитать 10 миллионов реплик bootstrap в R, но на моей машине не хватает памяти как есть (128 ГБ).bootstrapping с 10 миллионами реплик - недостаточно памяти

Прямо сейчас, я делал это с помощью 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

Какой анализ вы делаете, что вам действительно нужно 10 миллионов образцов? –

+0

Возможно, это будет возможно сделать, но без воспроизводимого примера мы не сможем сделать, чтобы помочь вам. Однако сначала вы должны проверить это без распараллеливания и попробуйте с меньшим увеличением числа n, чтобы экстраполировать потребность в памяти. – Roland

+0

Хорошая идея, я буду работать над воспроизводимым анализом и пересмотреть вопрос. –

ответ

0

Можете ли вы создать файл или набор файлов с индексами, представляющими выборку для начальной загрузки. Вы также можете написать сам объект, который будет создан для каждого из загрузочных файлов. Затем ваша обработка будет читать в каждом файле и выполнять анализ. Проблема, вероятно, связана с попыткой создать все в памяти сразу.

Как насчет запуска 1000 бутстрапов за раз, а затем консолидации результатов?

 Смежные вопросы

  • Нет связанных вопросов^_^