Невозможно использовать оперативную память в квантере - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь запустить 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 используется только до 4GB . Я видел это в диспетчере задач. Это не закончилось больше часа, и я остановил его.

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

1 Ответ

0 голосов
/ 21 января 2019

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

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

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

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

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

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

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

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

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

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

...