OnDemand Interactive Apps

This page covers the individual interactive applications available through Open OnDemand — Jupyter, Jupyter on GPU, RStudio, RStudio on GPU, and MATLAB. For logging in, managing files, and the general launch/connect/delete pattern, see the Open OnDemand overview.

Jump to an app:

  • Jupyter


    Jupyter Notebook or JupyterLab on a CPU node.

    Jupyter

  • Jupyter on GPU


    Jupyter Notebook or JupyterLab on a GPU node.

    Jupyter on GPU

  • RStudio


    RStudio Server on a CPU node.

    RStudio

  • RStudio on GPU


    RStudio Server on a GPU node.

    RStudio Server on GPU

  • MATLAB


    The MATLAB desktop, served through the browser by matlab-proxy.

    MATLAB

Jupyter Notebook and Lab

↑ Back to app menu

The Jupyter app runs Jupyter Notebook or JupyterLab on a compute node with dedicated resources. (This is the Jupyter app inside Open OnDemand — distinct from the standalone JupyterHub portal at jupyter.crc.pitt.edu.) Launch it from the Jupyter tile on the Dashboard, or from Interactive Apps → Jupyter.

Open OnDemand Dashboard with the Jupyter pinned app highlighted

On the launch form, set the job parameters and click Launch:

Field What it does
Cluster Which cluster the session runs on (for example, htc).
Use JupyterLab instead of Jupyter Notebook? Check for the JupyterLab IDE; leave unchecked for the classic Notebook.
Python version The Python module to load (for example, python/ondemand-jupyter-python3.11).
Name of Custom Conda Environment Leave blank to use the base environment. Otherwise, give the name (or full path) of a conda environment that already has JupyterLab installed.
Number of hours Wall-time limit for the session.
Number of cores 1–128 cores, roughly 8 GB of memory per core unless you request a whole node.
Memory (GB) Optional explicit memory request.
Account The Slurm allocation to charge; leave blank to use your default.

Don't over-request cores

Unless your code is genuinely parallel (for example, thread-parallelized NumPy) or memory-hungry, a few cores is plenty — larger requests wait longer in the queue.

Top of the Jupyter launch form: cluster, JupyterLab option, and Python version

Bottom of the Jupyter launch form: cores, memory, account, and the Launch button

Your session is queued while it waits for resources, then starts running. When the card shows Running, click Connect to Jupyter to open the interface in a new tab.

My Interactive Sessions showing the Jupyter session queued

My Interactive Sessions showing the Jupyter session running, with a Connect to Jupyter button

JupyterLab running in the browser with the file browser and a notebook open

When you're done, return to My Interactive Sessions and click the red Delete button to end the session and free the resources.

Jupyter on GPU

↑ Back to app menu

Jupyter on GPU is the same app running on a GPU node. It has no pinned tile — open it from Interactive Apps → Jupyter on gpu (under the Deep Learning group).

Interactive Apps menu open, with Jupyter on gpu listed under the Deep Learning group

On the launch form, set the job parameters and click Launch:

Field What it does
Use JupyterLab instead of Jupyter Notebook? Check for the JupyterLab IDE; leave unchecked for the classic Notebook.
Python version Bundles the framework, Python, and CUDA together — for example, pytorch 2.5.1 python 3.11 cuda 12.4.
Cuda version A separate CUDA module to load. Choose None if you're using PyTorch with its bundled CUDA packages.
Number of hours Wall-time limit for the session.
Number of cores 1–128 cores, roughly 8 GB of memory per core unless you request a whole node.
CPU Memory (GB) Optional explicit memory request.
GPU type Which GPU/node type to request (for example, rtx6k,96g,amd(avx512)).
Number of gpu cards 1–4 cards on the node.
Account The Slurm allocation to charge; leave blank to use your default.
Reservation Leave blank unless you've been given a reservation.

Top of the Jupyter on gpu launch form: JupyterLab option, Python/framework version, and CUDA version

Bottom of the Jupyter on gpu launch form: GPU type, number of GPU cards, account, and the Launch button

Click Launch. As before, the session is queued, then runs; when it shows Running, click Connect to Jupyter.

My Interactive Sessions showing the Jupyter on gpu session queued

My Interactive Sessions showing the Jupyter on gpu session running on a GPU node, with a Connect to Jupyter button

JupyterLab running in the browser on a GPU node

Your Jupyter session is a Slurm job

The session runs on a dedicated compute node with exactly the resources you requested on the form — it is a normal Slurm job, not something running in your browser or on a shared server. From a terminal inside JupyterLab, squeue -M all -u $USER lists it with its job ID, node, and partition. This is also why the session waits in the queue, counts against your allocation, and must be ended with Delete.

Terminal inside JupyterLab showing the session listed as a Slurm job by squeue

When you're done, end the session with the red Delete button, the same as any interactive app.

RStudio

↑ Back to app menu

RStudio Server runs the RStudio IDE in the browser on a compute node, so you can run more compute-intensive R work than on a login node. Launch it from the RStudio Server 2026 tile on the Dashboard, or from Interactive Apps → RStudio Server.

Open OnDemand Dashboard with the RStudio Server 2026 pinned app

On the launch form, set the job parameters and click Launch:

Field What it does
R version The R module to load (for example, 4.6.0).
Number of hours Wall-time limit for the session.
Number of cores 1–128 cores, roughly 8 GB of memory per core unless you request a whole node.
Memory (GB) Optional explicit memory request.
Account The Slurm allocation to charge; leave blank to use your default.
Reservation Leave blank unless you've been given a reservation.

Top of the RStudio Server launch form: R version, hours, and cores

Bottom of the RStudio Server launch form: memory, account, reservation, and the Launch button

The session is queued, then runs; when it shows Running, click Connect to RStudio Server.

My Interactive Sessions showing the RStudio Server session queued

My Interactive Sessions showing the RStudio Server session running, with a Connect to RStudio Server button

RStudio Server IDE running in the browser

The R modules bundle many R and Bioconductor packages. To install your own, open Clusters → HTC Shell Access, load an R module (find the current one with module spider r), start R, and use install.packages("pkg") or BiocManager::install("Bioconductor_pkg"). Use .libPaths() to see where R searches.

Common RStudio errors

RStudio Server stores its state in your home directory (~/.local/share/rstudio or the legacy ~/.rstudio), which has a 75 GB quota. Large project files or timed-out sessions can fill it; you can delete unused sessions from ~/.local/share/rstudio/sessions. When switching R versions, it helps to remove ~/.local/share/rstudio (e.g. rm -rf ~/.local/share/rstudio) — it will be regenerated.

Because the RStudio Server interface is a single-threaded process, a long-running operation can make another action (such as saving) time out with Status code 502. Usually nothing crashes — wait for the running code to finish and try again. If you exceed your requested time limit you'll see Status code 503; start a new session from Interactive Apps → RStudio Server.

Quitting RStudio does not free the node

Selecting File → Quit Session (or the red icon in RStudio) only closes RStudio — it does not end your interactive HTC session, and you keep consuming CPU hours. To end it, return to the Dashboard and click the red Delete button.

RStudio Server on GPU

↑ Back to app menu

RStudio Server on GPU is the same app running on a GPU node. Like Jupyter on GPU, it has no pinned tile — open it from Interactive Apps → RStudio Server on gpu (under the Deep Learning group).

Interactive Apps menu open, with RStudio Server on gpu listed under the Deep Learning group

On the launch form, set the job parameters and click Launch:

Field What it does
R version The R module to load (for example, 4.5.0).
Number of hours Wall-time limit for the session.
Number of cores 1–64 cores on a GPU node, roughly 8 GB of memory per core unless you request a whole node.
Memory (GB) Optional explicit memory request.
GPU type Which GPU to request (for example, l40s).
constraint A node feature to match (for example, amd,40g).
Number of gpu cards 1–4 cards on the node.
Account The Slurm allocation to charge; leave blank to use your default.
Reservation Leave blank unless you've been given a reservation.

Top of the RStudio Server on gpu launch form: R version, cores, memory, and GPU type

Bottom of the RStudio Server on gpu launch form: GPU type, constraint, GPU cards, account, and the Launch button

The session is queued, then runs; when it shows Running, click Connect to RStudio Server.

My Interactive Sessions showing the RStudio Server on gpu session queued

My Interactive Sessions showing the RStudio Server on gpu session running on a GPU node, with a Connect to RStudio Server button

RStudio Server IDE running in the browser on a GPU node

This session is a Slurm job

An RStudio Server on GPU session is a Slurm job on a dedicated GPU node. From the RStudio Terminal tab, squeue -M gpu -u $USER lists it with its job ID, node, and partition.

RStudio Terminal tab showing the session listed as a Slurm job on a GPU node by squeue

The R modules bundle many R and Bioconductor packages. To install your own, open Clusters → HTC Shell Access, load an R module (find the current one with module spider r), start R, and use install.packages("pkg") or BiocManager::install("Bioconductor_pkg"). Use .libPaths() to see where R searches.

Common RStudio errors on GPU

RStudio Server stores its state in your home directory (~/.local/share/rstudio or the legacy ~/.rstudio), which has a 75 GB quota. Large project files or timed-out sessions can fill it; you can delete unused sessions from ~/.local/share/rstudio/sessions. When switching R versions, it helps to remove ~/.local/share/rstudio (e.g. rm -rf ~/.local/share/rstudio) — it will be regenerated.

Because the RStudio Server interface is a single-threaded process, a long-running operation can make another action (such as saving) time out with Status code 502. Usually nothing crashes — wait for the running code to finish and try again. If you exceed your requested time limit you'll see Status code 503; start a new session from Interactive Apps → RStudio Server on gpu.

Quitting RStudio does not free the node

Selecting File → Quit Session (or the red icon in RStudio) only closes RStudio — it does not end your interactive session, and you keep consuming your allocation. To end it, return to My Interactive Sessions and click the red Delete button.

MATLAB

↑ Back to app menu

Two MATLAB apps are offered. Prefer matlab (the matlab-proxy web app); MATLAB on htc is the older VNC-based version. Launch the web app from the matlab tile on the Dashboard.

Open OnDemand Dashboard with the matlab pinned app

The launch form is simpler than the other apps' — just a version, wall time, and cores:

Field What it does
Matlab version The MATLAB release to load (for example, R2025a).
Number of hours Wall-time limit for the session.
Number of cores Cores on the node, roughly 8 GB of memory per core unless you request a whole node.

OnDemand matlab launch form: MATLAB version, hours, and cores

The session is queued, then runs; when it shows Running, click Connect to Matlab.

My Interactive Sessions showing the matlab session queued

My Interactive Sessions showing the matlab session running, with a Connect to Matlab button

MATLAB opens a Status Information panel while it starts, which can take a few minutes. It shows the license source (Pitt's Network License Manager) and confirms authentication, with controls to start, stop, or shut down the MATLAB process.

MATLAB Status Information panel showing licensing, authentication, and session controls

Once MATLAB loads, a small control widget — the badge icon near the top — lets you restart or sign out of MATLAB, and its color reflects the MATLAB status.

MATLAB running in the browser, with the session-control widget tooltip explained

Shutting down MATLAB does not free the node

Stopping or shutting down MATLAB from the control widget ends the MATLAB process but not your interactive session. To release the node, return to My Interactive Sessions and click the red Delete button.

Other GUI applications — Stata, Mathematica, SAS, Cytoscape, QGIS, and more — launch the same way from the Interactive Apps menu.