Скрипт с использованием графического процессора выдает ошибку при запуске приложения на сервере Shiny - PullRequest
0 голосов
/ 22 октября 2018

Я написал некоторый код на R, используя пакет Shiny.Приложение работает нормально при запуске shiny::runApp() из RStudio.

Я попытался разместить приложение на блестящем сервере, и графический интерфейс запускается правильно.Тем не менее, график должен появиться справа при нажатии кнопки «Информация об Enviar».(Вы можете увидеть, как приложение выглядит здесь , но оно не будет работать, хотя эта ссылка не на Shiny-сервере, а на Shinyapps.io).

Соответствующая часть файла журналавыглядит следующим образом:

Listening on http://127.0.0.1:38327
Loading required package: Rcpp
Warning: Error in [: subscript out of bounds
  211: FUN [/srv/shiny-server/spike_sorting/server.R#82]
  210: apply
  209: cluster_som_h [/srv/shiny-server/spike_sorting/server.R#82]
  ...

Таким образом, ошибка находится внутри функции cluster_som_h.Попробовав некоторые вещи, я выяснил, что является причиной ошибки, но не знаю, как ее исправить.Внутри этой функции я использую функцию Rsomoclu.train() из пакета Rsomoclu с kernelType = 1.Это означает, что функция запускается на графическом процессоре.Если я установлю kernelType = 0, то приложение будет нормально работать как с runApp(), так и с сервера Shiny. Так вот в чем проблема: по какой-то причине запуск функции на графическом процессоре не работает, если приложение запускается с сервера Shiny, но работает, если он запускается из RStudio с использованием runApp().

Возможно, что-то происходит, потому что на моем компьютере установлена ​​CUDA, но когда я пытаюсь запустить его с сервера, что-то происходит.Есть ли способ это исправить?Я считаю, что запуск кода с этого конкретного компьютера, независимо от того, где в локальной сети запущено приложение, решит эту проблему.Это возможно?

1 Ответ

0 голосов
/ 23 октября 2018

После некоторых (базовых) исследований я узнал, что происходит.Я установил CUDA только в моем пользователе в Ubuntu, поэтому мне пришлось изменить первую строку файла /etc/shiny-server/shiny-server.conf, чтобы пользователь был прав:

# Instruct Shiny Server to run applications as the user "my_name"
run_as my_name;
...