Как использовать R.cache, parallel и doParallel на сервере openCPU (linux fedora) - PullRequest
0 голосов
/ 06 ноября 2019

Я использую openCPU для выполнения кода R через запросы AJAX. В этом контексте я использую следующие пакеты в своем собственном R-пакете: R.cache, doParallel, параллельный и stablespec. Установка и выполнение моего пакета на локальном сервере openCPU работает нормально. Однако, когда я устанавливаю openCPU в системе Linux-Fedora, чтобы иметь «облачный» сервер, кеширование и распараллеливание не работают. При использовании распараллеливания результат не получен. Закомментируя распараллеливание, код является исполняемым (но, конечно, очень медленным).

Я также проверил, что все необходимые пакеты установлены на облачном сервере openCPU.

Проблема в том, что пакеты R, R.cache, а также doParallel и параллельные не работают корректно на openCPU.

В моем собственном пакете, необходимые пакеты перечислены в ОПИСАНИИ-Импорт раздела. Я использую R.cache, как предложено в их описании:

В начале функции выполняется следующий код:

data <- R.cache::loadCache(key)
  if (!is.null(data)) {
    return(data);
  }

И в конце:

R.cache::saveCache(data, key=key, comment="myFunction()")

Распараллеливание включено следующим образом:

cores <- parallel::detectCores()
cl <- parallel::makeCluster(cores)
doParallel::registerDoParallel()

Однако функция detectCores () выдает ошибку.

Моя самая большая проблема заключается в том, что он работает на локальном сервере openCPU, запущенном из RStudio, но не работает на облачном сервере openCPU на сервере Linux-Fedora.

...