Skip to content

Interactive Computing with OnDemand

Make sure you are connected to VPN

Similar to ssh access, OnDemand requires your device to be on Oxford VPN, MSD VPN, or eduroam (no VPN needed if already on eduroam WiFi)

To log in to OnDemand, enter your BMRC user name and then your BMRC password immediately followed by 6-digit second authentication factor in the same password field.

BMRC Open OnDemand
ondemand00.bmrc.ox.ac.uk:12000
Launch

OnDemand Apps

srun

Prerequisites

Before launching the Jupyter app, ensure you have: 1. A Python virtual environment set up — see Creating a Python virtual environment 2. At least one Jupyter kernel registered, either: - Using kir-add-kernel (available with the JupyterLab/4.5.6> module) — see Registering a kernel with kir-add-kernel - Or manually — see Manually registering a Jupyter kernel

Step 1 — Create your jupyter.sh setup script

The app requires a shell script that prepares your Jupyter environment before the session starts. This script must load any required modules and/or activate your Python virtual environment Create a file called jupyter.sh in your home (easier to call it from home) directory:

touch ~/jupyter.sh

Then edit it to match your setup. Choose one of the following approaches:

Use this if you are relying on kernels registered via kir-add-kernel and do not need to activate a specific virtual environment for the Jupyter process itself:

#!/bin/bash
module purge
module load JupyterLab/4.5.6

Use this if you have installed JupyterLab directly into a virtual environment:

#!/bin/bash
module purge
module load Python/....
source ~/venvs/my-env/bin/activate

Step 2 — Fill in the launch form

srun

Path to script that sets up your Jupyter environment

Enter the path to the jupyter.sh script you created above:

~/jupyter.sh

Jupyter Mode

Select either Jupyter Notebook or JupyterLab depending on your preference. JupyterLab is recommended for most users as it provides a more fully featured interface.

Jupyter Startup Folder

This is the directory that Jupyter will open in, and it also acts as the root of the file browser within your session. You will not be able to navigate above this folder from within Jupyter. For an example,

~/notebooks

Choose your startup folder carefully

Set this to the top-level directory that contains your project files. For example, if your work lives under /well/<group>/users/$USER/, setting the startup folder to that path means you can browse your full project structure from within Jupyter without having to navigate around it.

Prerequisites

Prior to launching RStudio-server via OnDemand, make sure to setup your ~/.Rprofile according to these instructions

There are three RStudio apps in the OnDemand dashboard. Please choose the one with the custom logo below; the other two are legacy and support only up to R/4.3*

srun

srun

The Code Server app launches a VS Code environment running directly on a BMRC compute node, accessible from your browser — no local VS Code installation required.

How this differs from the VS Code Remote extension

If you have used the VS Code Remote - SSH extension from your local machine, the experience will feel familiar, but there is an important distinction:

  • Remote - SSH runs VS Code locally and tunnels into the cluster over SSH. Your local machine handles the interface; the cluster handles computation.
  • Code Server runs VS Code entirely on the cluster, served through your browser. There is no dependency on your local VS Code installation or SSH tunnel — the session is managed by OpenOnDemand like any other job.

Installing extensions

Because the Code Server session runs on a compute node with no internet access, you cannot install extensions directly from the marketplace in the usual way.

You can still install extensions manually by downloading the .vsix file from outside the cluster and installing it via the command line:

  1. Download the .vsix file for your extension from the VS Code Marketplace on your local machine
  2. Transfer it to BMRC (e.g. via scp or the OOD file browser)
  3. Install it with:

code-server --install-extension /path/to/extension.vsix

The extension will then be available the next time you launch a Code Server session.

srun

The Virtual Desktop app launches a full graphical desktop environment on a BMRC compute node, accessible directly from your browser. No SSH tunnelling or local X11 setup required.

This is useful when you need to:

  • Run applications with a graphical user interface (GUI), such as IGV, QuPath, or data interactively using tools that don't work well in a notebook environment
  • Use desktop-based workflow tools or file managers on the cluster

The launch form lets you select your partition, number of CPUs, memory, and walltime — fill these in as you would for any other Slurm job.

Tip

If you only need a terminal on a compute node, use the Jupyter or srun options instead — Virtual Desktop has a higher resource overhead and should be reserved for work that genuinely requires a GUI.

Troubleshooting

RStudio stuck on grey screen after connecting

If you click Connect on an RStudio OnDemand session but are greeted with a persistent grey screen, the previous session likely saved a large object to its workspace and RStudio is attempting to restore it on launch — which can stall or hang indefinitely.

Fix: Delete the active session state to clear the saved workspace:

warning

This will discard any unsaved objects from your previous R session. Scripts and files on disk are unaffected.

rm -rf ~/.local/share/rstudio/sessions/active/
Once done, relaunch your RStudio session from OnDemand as normal.