Невозможно использовать оперативную память в квантере
Я пытаюсь бежать 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" Лим и Тихи.
Надеюсь, поможет.