Interactive sessions with Open OnDemand
Open OnDemand is available at BMRC and is the recommended method for interactive HPC resource access.
It can be accessed from a browser at
https://ondemand00.bmrc.ox.ac.uk:12000
Access is only possible from selected University network or VPN ranges.
OnDemand allows you access to BMRC cluster computing resources via your web browser such as a terminal shell and applications like Jupyter, R-Studio, Remote Desktop and Remote Desktop with GPU. It functions on desktops, laptops and iPads. Those less confident of using the terminal command line may find Open OnDemand advantageous.
When logging in the password box needs your BMRC password with your BMRC MFA code appended.
Sessions are launched on the Slurm cluster and you will be offered a choice of partition to select. Select the partition appropriate for your job. To use a GPU accelerated remote desktop session select the gpu_interactive (12 hr) partition.
Jupyter
The Jupyter app provides a framework to run JupyterLab or Jupyter Notebook via Open OnDemand. It is a little more complicated than starting a remote desktop as you have to provide the actual Jupyter it runs. An example for how to do that using BMRC's "JupyterNotebook/7.0.2-GCCcore-12.3.0" module, which automatically pulls in the "JupyterLab/4.0.5-GCCcore-12.3.0" and "Python/3.11.3-GCCcore-12.3.0". modules, and additionally loading the "SciPy-bundle/2023.07-gfbf-2023a" module, is below.
Create a file, e.g. called "jupyter_env.sh", that contains the following:
module load JupyterNotebook/7.0.2-GCCcore-12.3.0
module load SciPy-bundle/2023.07-gfbf-2023a
At this point you can go to https://ondemand00.bmrc.ox.ac.uk:12000, login and select the Jupyter app.
Put the plain fully-specified path to the jupyter_env.sh script in the field labelled "Path to script that sets up your Jupyter environment". Note that OOD will not substitute environment variables such as "${HOME}" or special variables such as "~" as would happen in a shell so you will get unexpected results if you try to use them.
Put the plain fully-specified path to your working directory in the field labelled "Jupyter Startup Folder".
Click the "Launch" button. After a short wait you should be able to connect to your Jupyter instance.
When done, choose "Shut down" from the Jupyter menu.
Jupyter with a python virtualenv
If you want a notebook instance that is not compatible with the centrally-installed versions available via "module load" then you will need some configuration that is a little more complex. Below is an example of how to use the latest version of notebook via a python virtualenv.
If you don't already have one then you'll need directory to contain your virtualenv, e.g.:
mkdir -p "/well/$(id -ng)/users/${USER}/my_nb"
Create and populate a virtualenv based on the centrally installed "Python/3.11.3-GCCcore-12.3.0" module:
module load Python/3.11.3-GCCcore-12.3.0
python -m venv "/well/$(id -ng)/users/${USER}/my_nb/venv"
. "/well/$(id -ng)/users/${USER}/my_nb/venv/bin/activate"
pip install notebook
deactivate
Create a script that will activate this environment when sourced:
cat > "/well/$(id -ng)/users/${USER}/my_nb/setup.sh" << EOT
module load Python/3.11.3-GCCcore-12.3.0
. "/well/$(id -ng)/users/${USER}/my_nb/venv/bin/activate"
EOT
Go to https://ondemand00.bmrc.ox.ac.uk:12000, login and select the Jupyter app.
Put the plain (i.e. with "$(id -ng)" and "${USER}" substituted with their values) fully-specified path to the setup.sh script in the field labelled "Path to script that sets up your Jupyter environment".
Put the plain fully-specified path to your working directory in the field labelled "Jupyter Startup Folder".
Click the "Launch" button. After a short wait you should be able to connect to your Jupyter instance.
When done, choose "Shut down" from the Jupyter menu.
If you want to use your own jupyter install, e.g. from a conda environment, adjust the setup script so that after sourcing it from a clean environment (i.e. no modules loaded, no environment variables that aren't set automatically) running "jupyter" starts the desired install.