r语言 - 使用 GPU 的脚本在 Shiny 服务器上运行应用程序时引发错误



我用 Shiny 包用 R 编写了一些代码。从 RStudio 运行shiny::runApp()时,该应用程序运行良好。

我尝试在 Shiny 服务器上托管该应用程序,并且 GUI 正确启动。但是,当单击"Enviar informacion"按钮时,右侧应该会出现一个绘图。(您可以在此处查看该应用程序的外观,但它无法正常工作,因为该链接不在 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 中的函数Rsomoclu.train(),带有kernelType = 1.这意味着该函数在 GPU 上运行。如果我设置kernelType = 0,那么该应用程序在runApp()和 Shiny 服务器上都可以正常工作。所以这就是问题所在:由于某种原因,如果应用程序从 Shiny 服务器运行,则在 GPU 上运行该功能不起作用,但如果使用runApp()从 RStudio 运行该功能,它确实有效。

也许发生了什么事情,因为我的计算机上安装了 CUDA,但是当我尝试从服务器运行它时,发生了一些事情。有没有办法解决这个问题?我相信无论应用程序在局域网上的哪个位置运行,从这台特定的计算机运行代码都可以解决这个问题。这可能吗?

在做了一些(基本(研究后,我发现了发生了什么。我只在 Ubuntu 中的用户中安装了 CUDA,所以我不得不更改文件/etc/shiny-server/shiny-server.conf的第一行,以便用户是正确的用户:

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

相关内容

最新更新