Тесные связи с Юлией из-под R - PullRequest
2 голосов
/ 02 апреля 2020

В моем коде R я использую пакет MixedModels Julia. Я интегрирую Julia в R, используя пакет JuliaCall. Я работаю с очень большими наборами данных (~1 GB, ~4x10^6 наблюдения) и на этапе моделирования (mixed models) выделяется много оперативной памяти (~80 GB), большая часть которой не возвращается в систему после завершения расчетов. Как закрыть соединения с Julia из-под R (или, возможно, закрыть Julia) после получения результатов моделирования в среде R? В то же время сеанс R не должен прерываться , поскольку после расчета смешанных моделей другие функции должны выполняться в конвейере. Возможно, это действие поможет освободить определенное количество памяти для системы (Платформа: x86_64-pc-linux-gnu (64-bit)).

1 Ответ

0 голосов
/ 03 апреля 2020

Если вы вызвали код Джулии из R как функцию, вы можете вернуть набор параметров, которые вы рассчитали, в R без данных. Если это так, то до возвращения из Джулии вы можете установить все ссылки на данные и другие большие переменные, ссылающиеся на память, равными 0, а затем собрать мусор, например. если

a = rand(1000, 1000, 100)
a = 0  # destroy reference since Julia reference counts

, тогда вызовите сборщик мусора вручную:

GC.gc()

Это предполагает, что вам больше не нужны внутренние данные, на которые ссылаются переменные Julia, что вероятно, если все Вы хотели, чтобы были параметры модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...