RStudio Server app for Open OnDemand on the BRC clusters.
Forked from https://github.com/mcw-rcc/bc_rcc_rstudio_server, which is based on https://github.com/OSC/bc_osc_rstudio_server.
This provides an RStudio Server app tailored for BRC that uses the system R (and a system-installed RStudio Server) rather than providing R/RStudio in a container. The benefits of this over a container-based approach include:
- Access to the same version of R as users are used to via the module system, including use of the heavily-optimized, threaded Intel MKL BLAS and LAPACK linear algebra packages rather than the much slower, non-threaded BLAS and LAPACK that come by default with R.
- Access to the set of core R packages provided in the r-packages and r-spatial modules.
- Avoiding having user confusion from the local filesystem of the OOD app be inside the container.
- Install RStudio Server in a module, as shown in the consultsw module farm, at
scripts/rstudio-server/1.3.1093. Note that just dumps the binaries from the rpm onto the filesystem. As of version 1.4 (I think) RStudio Server needs dynamically links to a Postgres library, libpq, which is not available on Savio, but for now the older RStudio Server should be fine. - Make sure that
template/bin/authuses-ltas discussed here. - Copy
form.jsandform.yml.erbfrom existing Savio RStudio OOD config. Modifyform.yml.erbto build on existing Savio RStudio OOD config. Set variables for the versions of RStudio Server, R, and R-spatial. - Modify
template/script.sh.erbto load modules and set R library search path details.
- Make online form language the same as in the current RStudio app, reflecting ucb-rit/brc_oodapps#11
- Set up the widget so users can choose the version of R they want. We'll need to dynamically determine which version of r-spatial to use and what the user's
R_LIBS_USERshould be, i.e.,~/R/x86_64-pc-linux-gnu-library/<RVERSION>. - Consider making the default partition
savio2_htcgiven most (many?) users wil not be doing parallel computations. The widget options seem to come from some global OOD config, so not sure if this is possible to override for a single app.