Невозможно использовать оперативную память в квантере

Я пытаюсь бежать quantreg с 2 независимыми переменными в 12 555 029 случаях. У меня 16ГБ оперативной памяти на компьютере, 64-битная ОС. команда memory.limit() вернулся 16 264. команда sessionInfo() вернулся:

R version 3.5.2 (2018-12-20)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Matrix products: default

locale:
[1] LC_COLLATE=English_United Kingdom.1252  LC_CTYPE=English_United Kingdom.1252   
[3] LC_MONETARY=English_United Kingdom.1252 LC_NUMERIC=C                           
[5] LC_TIME=English_United Kingdom.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.5.2 tools_3.5.2   

Во время исполнения quantreg используется только до 4 ГБ. Я видел это в диспетчере задач. Это не закончено больше одного часа, и я остановил это.

Зачем quantreg не используется другая доступная оперативная память? Как я могу увеличить использование оперативной памяти?

1 ответ

R не может использовать всю оперативную память, доступную в вашей системе. Существуют некоторые приемы для преодоления ограниченной проблемы с ОЗУ в R. R хранит все данные в ОЗУ, поэтому размер анализируемых данных ограничен объемом ОЗУ. Что мы должны сделать, это уменьшить размер данных и выбрать более эффективные типы данных и некоторые хитрости для решения этой проблемы.

1 - Зависит от типа ваших данных, вы можете изменить их тип. Например, числовые значения занимают больше памяти, чем целые числа.

2 - Используйте факторы вместо символов там, где это возможно. Факторы более эффективны, потому что они хранят уровни вместо всего вектора.

3 - Используйте битовые векторы, если у вас есть логическая переменная без значения NA. Они занимают только 1 бит, в то время как логические переменные занимают от 4 до 32 бит.

4 - Используйте ваши объекты вместо создания новых там, где это возможно, и убедитесь, что вы вызываете gc() когда вы удаляете некоторые объекты.

5 - Вы можете сохранить данные большого размера, удалить их и перезагрузить, когда это необходимо.

6 - Посмотрите на bigmemory а также ff пакеты.

7 - Закройте все другие процессы в вашей системе, потому что они занимают некоторое количество вашей оперативной памяти.

И вы можете взглянуть на книгу под названием "Высокопроизводительное программирование R" Лим и Тихи.

Надеюсь, поможет.

Другие вопросы по тегам