Open OnDemand is an open source project from the Ohio Supercomputer Center. From openondemand.org:
“Open OnDemand helps computational researchers and students efficiently utilize remote computing resources by making them easy to access from any device. It helps computer center staff support a wide range of clients by simplifying the user interface and experience.”
With OnDemand, you can launch interactive desktop environments, or use other online interactive apps.
Login
NOTE: If you have never logged in to the cluster before, you will get an error trying to log in to Open OnDemand. You will need to [follow these instructions][connecting_with_ssh] to log in to the cluster before you can log in to Open OnDemand.
- Go to ondemand.rc.rit.edu
- Note the “rc” – otherwise you’ll order food instead of computing resources!
- Log in with your RIT username and password and you should end up here:
-
File Explorer
Click “Files” then “Home Directory”. This will bring you to a basic file explorer, where you can view, edit, download and upload files in your web browser.
Shell Access
Click “Clusters”, then “sporc Shell Access”. Enter your password and then use sporcsubmit as you normally would.

Interactive Desktop
-
Click “Interactive Apps”
-
Click “SPORC - OOD Interactive Desktop”
- Enter your SLURM account, the number of hours you want to keep the interactive session alive for, and the number of cores you need
-
-
Click “Launch”
- Click “Launch SPORC - OOD Interactive Desktop”
-
- Optionally, set the image quality settings that are right for you. This will depend on your internet connection and how clear you want things to look.
- High compression and lower image quality can help responsiveness if things are loading too slow due to a slow network connection.
- High quality, low compression
-
- High quality, high compression
-
- Low quality, low compression
-
- Low quality, high compression
-
- You can then use the interactive desktop as you would any other graphical desktop environment on Linux
-
- After you are done, click your name in the top right, and then “Log Out”
-
- In the OnDemand dashboard, click “Delete”
-
Using Jupyter Notebook
-
Click “Interactive Apps”
-
Click “OnDemand - Jupyter Notebook”
- Then, enter the your SLURM account, the number of hours you want to keep the interactive session alive for, and the number of cores you need
-
- Optionally, In the Spack command to pre-run box, enter any spack commands you want to run before the notebook app starts. Examples (note that everything after a
#will be ignored):- Do nothing: Leave blank
- Load packages:
load <package 1> <package 2>load <package 1> && spack load <package 2>
- Activate Environment:
env activate <environment>- NOTE: This environment must contain py-notebook or it won’t work
- Change py-notebook version:
@<py-notebook version number>- NOTE: Some older versions may not work
- Use specific spack hash for py-notebook:
/<py-notebook hash> -
Note: If you are using a customized environment, such as ENGL 581/681 or REU 2208, you won’t be able to use
load,@or/. Use the OnDemand - Jupyter Notebook environment instead. - See also the “Advanced Pre-Run” section
- Click “Launch”
- If you want a terminal on the machine that Jupyter is running on, click the button next to “Host”:
-
- If you want to view the log, or any spack errors that occurred, click the link next to “Session ID”, then view
output.log: -
- If you want a terminal on the machine that Jupyter is running on, click the button next to “Host”:
- Finally, to open Jupyter Notebook, click “Connect to Jupyter”:
-
- When you are done with Jupyter, click “Delete”:
-
Using VS Code Server
-
Click “Interactive Apps”
-
“Click OnDemand - Jupyter Notebook”
- Then, enter the your SLURM account, the number of hours you want to keep the interactive session alive for, the number of cores you need, and your working directory
-
- Optionally, In the Spack command to pre-run box, enter any spack commands you want to run before the notebook app starts. Examples (note that everything after a
#will be ignored):- Do nothing: Leave blank
- Load packages:
load <package 1> <package 2>load <package 1> && spack load <package 2>
- Activate Environment:
env activate <environment>- NOTE: This environment must contain py-notebook or it won’t work
- Change code-server version:
@<code server version number>- NOTE: Some older versions may not work
- Use specific spack hash for code-server:
/<code-server hash> - See also the “Advanced Pre-Run” section
-
Then, click “Launch”
-
If you want, you can check
output.logthe same way as you can in Jupyter Notebook -
Click “Connect to VS Code”
-
See https://github.com/cdr/code-server/blob/main/docs/FAQ.md#installing-an-extension if you want to install an extension.
- When you are done, click “Delete”
Advanced Spack Pre-Run
The Spack command pre-run box is for running spack commands before the app launches. This is necessary for Jupyter Notebook, because it is difficult to load spack packages inside of a notebook:

In VS Code, you can get away with never closing your terminal to keep loaded packages around, but it’s still useful to be able to load them beforehand.
Under the hood, the pre-run box edits a bash script that looks like this (for regular jupyter notebook):
spack load py-notebook && spack <the text that's in the spack pre-run box>
There’s a bit more logic here (e.g. when the box is empty && spack is omitted, or when using @ or /), but this is what happens most of the time.
You can see the generated bash script if you click the “Session ID” link, and then view script.sh.


All output of this command will end up in output.log, so:

will produce an output.log that starts with:
Job started with Basic Batch_connect
Script starting...
Waiting for Jupyter Notebook server to open port 43904...
TIMING - Starting wait at: Thu Jun 3 14:48:51 EDT 2021
TIMING - Starting main script at: Thu Jun 3 14:48:51 EDT 2021
0.16.0-2013-9506bb6 <-------------------------------------------- this is the version number
TIMING - Starting jupyter at: Thu Jun 3 14:49:20 EDT 2021
...
Very Advanced Spack Pre-Run
It’s not recommended, but If you really must run other commands before the app starts, there’s nothing stopping you from doing more than just spack commands here, such as:
--version ; echo "you can put whatever here"
in output.log:
Job started with Basic Batch_connect
Script starting...
TIMING - Starting main script at: Thu Jun 3 14:53:03 EDT 2021
Waiting for Jupyter Notebook server to open port 55326...
TIMING - Starting wait at: Thu Jun 3 14:53:03 EDT 2021
0.16.0-2013-9506bb6
you can put whatever here
TIMING - Starting jupyter at: Thu Jun 3 14:53:26 EDT 2021
...
















