Я использую 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.