Integrating Posit Workbench with Slurm#
These steps describe how to integrate Posit Workbench, formerly RStudio Workbench, with Launcher and Slurm.
In this configuration, the Workbench and Launcher services will be installed to one node in the Slurm cluster, and the Workbench Session Components will be installed on all other Slurm nodes.
Launcher is a new feature of RStudio Workbench 1.21 that is only available under named user licensing. RStudio Workbench 1.2 without Launcher is available under existing server-based licensing. For questions about using Launcher with Workbench, please contact email@example.com.
- An existing Slurm cluster
- The minimum supported version of Slurm, 20.02.x
- Access to the
rsession.confcontains configurations specific to the sessions Workbench launches. Therefore, it needs to exist on the Slurm nodes where the sessions are being run. See the Appendix H - rsession.conf section for more information.
Pre-Flight Configuration Checks#
Verifying active Slurm compute nodes
On a machine with Slurm configured, ensure that you have one or more worker nodes that are ready to accept jobs as part of the Slurm cluster by running the following command:Terminal
Verifying functionality with a test job
On a machine with Slurm configured, ensure that you are able to deploy a sample jobs to your Slurm cluster by running a test command:Terminal
$ srun date
You can also create a sample script called submit.sh:File: submit.sh
#!/bin/bash # #SBATCH --job-name=test #SBATCH --output=res.txt # #SBATCH --ntasks=1 #SBATCH --time=10:00 srun hostname srun sleep 60
Then submit the job by running the following command:Terminal
$ sbatch submit.sh
Verify that it runs successfully on the Slurm cluster.
Step 1. Install Workbench on one Slurm node#
You can install Workbench on any Slurm node that
has access to the Slurm tooling such as
sinfo, etc. This can
be a Slurm login/submission node, controller node, or compute node.
You only need to install Workbench on one node. In later steps, you will install R and the Workbench Session Components on other Slurm nodes.
Step 2. Configure Workbench with Launcher#
On the node where Workbench is installed, add the following lines to the Workbench configuration file:File: /etc/rstudio/rserver.conf
# Launcher Config launcher-address=127.0.0.1 launcher-port=5559 launcher-sessions-enabled=1 launcher-default-cluster=Slurm launcher-sessions-callback-address=http://<SERVER-ADDRESS>:8787
We recommend that you do the following:
- In the
launcher-sessions-callback-addresssetting, you should replace
<SERVER-ADDRESS>with the hostname or IP address of Workbench.
You should also change the protocol and port if you are using HTTPS or a different port.
If HTTPS is being used, ensure you have
launcher-use-ssl=1configured in the
- In the
Ensure that the
launcher-sessions-callback-addressis reachable from the Slurm compute nodes.
Step 3. Configure Launcher settings and plugins#
On the node where Workbench is installed, add the following lines to the Launcher configuration file:File: /etc/rstudio/launcher.conf
[server] address=127.0.0.1 port=5559 server-user=rstudio-server admin-group=rstudio-server authorization-enabled=1 thread-pool-size=4 enable-debug-logging=1 [cluster] name=Slurm type=Slurm
Step 4. Configure profile for Launcher Slurm plugin#
On the node where Workbench is installed, add the following lines to the Launcher profiles configuration file:File: /etc/rstudio/launcher.slurm.profiles.conf
[*] default-cpus=1 default-mem-mb=512 max-cpus=2 max-mem-mb=1024
Step 5. Configure Launcher with Slurm#
On the node where Workbench is installed, add the following lines to the Launcher Slurm configuration file:File: /etc/rstudio/launcher.slurm.conf
If the Slurm CLI is installed in a non-default location, then it must be specified in the Slurm configuration file. For example:File: /etc/rstudio/launcher.slurm.conf
If you fail to add the non-default location in the configuration file, then the following error may return:Error
03 Aug 2021 17:42:42 [rstudio-slurm-launcher] ERROR slurm error 7 (Slurm command exited due to an unknown error: /bin/sh: scontrol: command not found
slurm-service-user should match the Slurm service user in your cluster.
Step 6. Verify Slurm configuration and cluster environment#
Verify that the following requirements are satisfied for Workbench and Launcher to work with your Slurm cluster:
- All Slurm nodes should have user's home directories mounted via shared file storage with matching user and group IDs across all nodes.
rootuser should have read access to all users' home directories.
In your Slurm configuration file (
MinJobAgesetting should be equal to or greater than the
/etc/rstudio/launcher.conf, which is 24 h by default. For both of them to be 24 h, you would need to set
slurm.confis configured in seconds, rather than hours.
Step 7. Ensure that R is available on Slurm compute nodes#
- On each Slurm compute node in the cluster (where you did not install Workbench), you will need to install one or more versions of R and associated R packages to be able to start R sessions via Slurm.
- We recommend installing R to a shared file server or network drive location so that any installed packages are also available across all compute nodes. You can also make use of existing versions of R and environment modules that are available on the cluster.
When using multiple versions of R, the shared file
/var/lib/rstudio-server/r-versionsmust be reachable by all Slurm nodes. Note that this file is generated by Workbench, and that its location may be changed by setting
For more information on using Launcher and Slurm with multiple versions of R and module loading, refer to the Multiple Versions of R and Module Loading section of the Workbench Launcher Administration Guide and the R Versions section of the Workbench Administration Guide.
- Alternatively, you can manually install R and R packages by following the steps to Install R on each Slurm compute node.
Step 8. Install Workbench session components on Slurm compute nodes#
On each Slurm compute node in the cluster (where you did not install
Workbench), you will need to install the Workbench session components and create an
to be able to start R sessions via Slurm.
Use the following commands to install the Workbench session components on each Slurm compute node:
sudo yum install libcurl-devel libuser-devel openssl-devel rrdtool postgresql-libs curl -O https://s3.amazonaws.com/rstudio-ide-build/session/rhel8/rsp-session-rhel8-2022.07.2-576.pro12.tar.gz sudo mkdir -p /usr/lib/rstudio-server sudo tar -zxvf ./rsp-session-rhel8-2022.07.2-576.pro12.tar.gz -C /usr/lib/rstudio-server/ sudo mv /usr/lib/rstudio-server/rsp-session*/* /usr/lib/rstudio-server/ sudo rm -rf /usr/lib/rstudio-server/rsp-session* rm -f ./rsp-session-rhel8-2022.07.2-576.pro12.tar.gz
sudo yum install libcurl-devel libuser-devel openssl-devel rrdtool postgresql-libs curl -O https://s3.amazonaws.com/rstudio-ide-build/session/centos7/rsp-session-centos7-2022.07.2-576.pro12.tar.gz sudo mkdir -p /usr/lib/rstudio-server sudo tar -zxvf ./rsp-session-centos7-2022.07.2-576.pro12.tar.gz -C /usr/lib/rstudio-server/ sudo mv /usr/lib/rstudio-server/rsp-session*/* /usr/lib/rstudio-server/ sudo rm -rf /usr/lib/rstudio-server/rsp-session* rm -f ./rsp-session-centos7-2022.07.2-576.pro12.tar.gz
sudo apt-get install curl libcurl4-gnutls-dev libssl1.0.0 libssl-dev libuser libuser1-dev rrdtool libpq5 curl -O https://s3.amazonaws.com/rstudio-ide-build/session/bionic/rsp-session-bionic-2022.07.2-576.pro12.tar.gz sudo mkdir -p /usr/lib/rstudio-server sudo tar -zxvf ./rsp-session-bionic-2022.07.2-576.pro12.tar.gz -C /usr/lib/rstudio-server/ sudo mv /usr/lib/rstudio-server/rsp-session*/* /usr/lib/rstudio-server/ sudo rm -rf /usr/lib/rstudio-server/rsp-session* rm -f ./rsp-session-bionic-2022.07.2-576.pro12.tar.gz
sudo zypper install libuser-devel curl -O https://s3.amazonaws.com/rstudio-ide-build/session/opensuse15/rsp-session-opensuse15-2022.07.2-576.pro12.tar.gz sudo mkdir -p /usr/lib/rstudio-server sudo tar -zxvf ./rsp-session-opensuse15-2022.07.2-576.pro12.tar.gz -C /usr/lib/rstudio-server/ sudo mv /usr/lib/rstudio-server/rsp-session*/* /usr/lib/rstudio-server/ sudo rm -rf /usr/lib/rstudio-server/rsp-session* rm -f ./rsp-session-opensuse15-2022.07.2-576.pro12.tar.gz
- You must install
postgresql-libsfor this distribution because it is a requirement.
- You must install
libpq5for this distribution because it is a requirement.
- You must install
rstudio-serveruser on each Slurm compute node, first check the
rstudio-serveruser by running
id rstudio-serveron the Workbench host machine. Then, on each compute node run the following commands:Terminal
$ sudo groupadd --system --gid <gid of rstudio-server> rstudio-server $ sudo useradd --system --gid rstudio-server --uid <uid of rstudio-server> rstudio-server
Step 9. Restart Workbench and Launcher Services#
Run the following to restart services:Terminal
$ sudo rstudio-server restart $ sudo rstudio-launcher restart
Step 10. Test Workbench with Launcher and Slurm#
- In your browser, navigate to the Workbench interface and log in.
- Select New Session, then click the Start Session button.
- You can then use the RStudio Session, which will be running as a Slurm job.
For more information on Workbench and Launcher, refer to the following reference documentation:
Troubleshooting Workbench and Slurm#
Refer to the support article on Troubleshooting Launcher and Slurm in Workbench for additional information on troubleshooting Workbench with Launcher and Slurm.
We will continue to use the RStudio Server Pro name for references to versions prior to 1.4. ↩