Closed soottikkal closed 3 years ago
Currently the best way to hijack a VNC GUIs loading process is by launching a VNC Desktop and loading the GUI from a terminal within it. That is how a commercial user is launching ANSYS with Fluent.
For web servers like RStudio it isn't currently possible to hijack the loading process (at least not easily) as that previously led to apps crashing due to inconsistent module environments.
Although that isn't to say we shouldn't load specialized environments for apps. For instance in Jupyter we load the CUDA module by default if the user selected nodes with GPUs.
A couple possible suggestions for the RStudio Server case you mentioned:
The modules and their versions change with time and need. In that case, I assume it will be difficult to implement checkboxes for different modules.
For the case of Rstudio Server we are locked into a specific version of R because of the libraries it was compiled against. So my only worry would be whether user-specified modules that use different libraries would play nice with installed RStudio Server.
If this is something that you want to test in the near term, the quickest solution would be we give you a quick tutorial on how to deploy and develop an interactive OnDemand app. That way you can copy over our RStudio Server app and modify it to meet your needs.
On the plus side, if you do improve the RStudio Server app in your private sandbox with added modules, we'd be more than happy to install your updated version into the production OnDemand. :smile:
So my only worry would be whether user-specified modules that use different libraries would play nice with installed RStudio Server.
@soottikkal has shared with me 2 different examples where "user specified modules" would work with the currently installed RStudio Server
While we can make modifications to the RStudio Server iHPC app to have new form elements for customizing modules loaded, for example, I think the point I'm interested in is if there was an option in the form for the user to be able to modify the environment (specify env vars, specify a bash script to source, etc.) of an iHPC app, a modification to the RStudio Server iHPC app would be unnecessary for some of these "edge cases".
@soottikkal it may be faster for us to update just the RStudio app at this time.
We could do both of these for RStudio very quickly (3 file modifications taking 5 minutes to do):
module load
command and the user could shoot themselves in the foot if they put something bad in here but that would give some more power for experimentingAre there any other apps besides RStudio where you would find this useful? Would this cover all the immediate corner cases you have identified based on your own use and OSC client requests?
If so, I would make the changes and share an example pull request on the Jupyter app github repo and then you could use it as a model for making similar modifications in the future.
I would prefer the second option to have the flexibility to work with various R packages (Rmpi is just one of them) so that one can load different modules or versions just like how one would do in the terminal R application. I haven't worked with any other interactive Apps till now. There weren't many requests for this feature from OSC user community, but there is greater interest for parallel R. So if a user prefers to do parallel R in RStudio App, then we need to have this feature enabled.Thanks!
This has been resolved in the https://github.com/OSC/bc_osc_rstudio_server/ app.
A feature that enables to pass environment variables to interactive Apps is needed. For example, to use Rmpi or SparkR in Rstudio, one needs to load module openmpi or module spark before launching Rstudio.