Synopsis

The Open OnDemand demand service provides web-based access to Snellius. It is an alternative to accessing Snellius via a terminal, but can also be used to remotely run graphical applications.

Open OnDemand allows users to:

  • manage files
  • work in a shell without using a terminal client on their remote system
  • launch jobs based on predefined templates
  • run interactive web services such as RStudio and Jupyter Notebooks
  • run applications with graphical user interfaces, including visualization applications


Accessing Open OnDemand

The Snellius Open OnDemand service can be accessed via the following URL:

https://ondemand.snellius.surf.nl/

To log in, a valid Snellius login is required, and the Usage Agreement needs to be accepted, see Snellius FAQ.  

Browser compatibility

To have the best experience using OnDemand, use the latest versions of Google Chrome, Mozilla Firefox or Microsoft Edge.

Safari is known to have issues when used with Open OnDemand.

See this page in the official documentation for more information.

Overview

The key features are available in the top menu on the start page:

Menu itemFeature



File explorer to upload files to / download from the home directory or project space.

Files can be deleted, renamed, moved to a different directory, or edited online using the integrated online editor.

Job manager to compose and submit Slurm jobs to the system

Shell access, for working interactively in a terminal

System status, which provides a high-level overview of currently available nodes, processors and GPUs (beta). Note that number of jobs running and queued only count jobs under your login (so not for the full system)

A set of interactive applications 

Overview of currently active sessions


The file explorer

The file manager can be selected in the top menu. By default, the contents of the home directory is shown and can be accessed via a web browser. Other file systems (e.g. a project space or the scratch space) can be chosen under “Change directory”. Clicking one of the columns, e.g. Modified at  allows sorting by that column.

Editing files

Files can be edited using the built-in editor available on the context menu of a file.


Shell access

Open OnDemand allows users to launch a terminal session on the system without using an SSH client, directly in the browser. This function is available under Clusters > snellius Shell Access . A new browser tab will open containing the shell session.

Copy-paste

When working within the terminal session text selected with the mouse will automatically get copy to the clipboard. This is indicated by an icon briefly appearing. You can paste the copied text with Ctrl+V (this should work within the terminal session, as well as to other applications on your system). You can also use a right mouse button click within the terminal to paste.

Pasting text into the terminal session, where the text comes from a different source (e.g. another browser window), can be difficult. It can depend on the particular browser and operating system you are using if this will work at all. For example, on Linux with Firefox pasting text into the Open OnDemand terminal does not work at all.


Interactive Sessions

Interactive sessions allow users to execute interactive applications on Snellius. We distinguish two application types:

  1. Server-Based Applications: Some applications are available as web-based or server-hosted versions, which you can access directly through a web browser without needing any local installations. Examples include applications like Jupyter Notebooks, RStudio and VSCode.

  2. Remote Desktop Access: For any other applications with graphical interfaces such as ANSYS, MATLAB, or ParaView that may not have a server-hosted version, you can use Remote Desktop. This option lets you connect to a compute node providing a fully interactive desktop environment. You can then run the application remotely on Snellius within that desktop.

To launch an interactive session, click on one of the interactive applications:

After selecting the application, you need to specify the required resources, i.e. partition, time, memory and, CPU and/or GPU resources:

Depending on the type of application chosen the available settings might have a few more settings, which are described in the sections below.

The default settings are chosen to be conservative and might need tweaking.

  • Partition: Selected to align with the application’s typical resource requirements.
  • Wall Time: Set to a standard duration that accommodates common tasks.
  • Number of CPU Cores: Configured to meet the usual processing needs of the application.
  • Memory: Allocated based on expected usage to maintain performance and stability.
  • GPUs: Number of GPUs required (only valid for GPU partitions)
  • Reservation: Applied when specific resources needed are to be allocated from a preconfigured reservation. 

 After clicking the Launch button a job is submitted to the specified partition. It will go through the normal SLURM scheduler, and is also visible with squeue

Interactive session cost

An interactive session in Open OnDemand uses SBUs as any other job on Snellius. The minimum allocation on most partitions is 16 cores, with 24 cores for Genoa nodes. For GPU nodes slightly different limits are in place. See Snellius partitions and accounting for more details.

The point is, when you work interactively you will probably not use that many cores, but an Open OnDemand session will still allocate the minimum set of CPU cores and have the associated SBU cost per hour. Therefore, it is recommended to terminate the session when the work is done using the Delete  button, to avoid unnecessary budget use.


When the Open OnDemand session is running on the compute node it will list the time remaining, the compute node allocated and provide a button to open the session:



JupyterLab and Jupyter Notebook

A Jupyter session has a number of extra settings that you can configure:

  • Select enviroment module version: this specifies which software stack will be available in the session. 
  • Additional Modules to load: here you can add extra module load ...  lines that will be make extra software modules available in the Jupyter environment
  • Extra Jupyter Arguments (optional)

When your JupyterLab session has been allocated, has started, and is ready for use, a Connect to Jupyter  button will become available. Clicking this will open a new browser tab that will then load the JupyterLab environment on the compute node that was assigned to your session.

Within the JupyterLab environment you can create and manage Jupyter notebooks, write code, visualize data, and execute computations directly.


VS Code

In the VS Code web-based interface you can edit code, manage files, install extensions, and run tasks all within the browser, with seamless access to the resources allocated by the server, whether you’re working on a single core in the staging partition or a more powerful setup if needed.



The default resource allocation for VS Code uses the rome partition with one CPU core. This setup is intended to handle standard code editing and development tasks while minimizing resource usage, which helps to conserve budget by using a lightweight, cost-effective partition.


RStudio

For RStudio there's an extra setting Select environment module version to pick the software environment to use, before launching the session.


Remote Desktop

The Remote Desktop feature provides a full graphical environment that you can access from your local device, allowing you to interact with applications hosted and running on Snellius, as if you were working locally on your laptop/workstation. This is especially useful for applications with complex graphical interfaces or high resource demands that need to run on a Snellius compute node.

Example uses are:

  • Using a GUI application to prepare simulation input, or to analyze application performance
  • Visualize 2D/3D output, including using GPU(s) for accelerated rendering

The remote desktop functionality in Open OnDemand is based on noVNC, which is a javascript-based VNC client. It should work on all modern browsers. The desktop running on Snellius is shown in your browser window, while any mouse and keyboard actions you perform will be sent to the remote desktop.


Multiple applications

In a remote desktop session, it is possible to work interactively on different applications, which is not the case for server-based applications. 

Remote visualization

The remote desktop in Open OnDemand is an alternative to the existing remote visualization functionality.

Similarities are:

  • Both are based on VNC for the remote desktop.
  • The same set of applications from the modules environment can be used
  • You can use GPU-accelerated rendering for OpenGL applications

Differences are:

  • Open OnDemand only requires a web browser, while remote visualization directly through VNC requires a separate VNC client
  • Visual performance within the remote desktop can be somewhat lower for Open OnDemand, due to the use of noVNC
  • Copy-paste in the Open OnDemand remote desktop might not work as well as through a VNC client directly
  • Some keyboard actions (most notably Ctrl+Q) will get interpreted differently in the Open OnDemand remote desktop as it runs in a browser that itself handles certain keyboard/mouse events.

Usage

After starting a remote desktop session and clicking Launch Remote Desktop  a new browser tab will open showing the remote desktop running on the allocated compute node:


To start working in the remote desktop use the application menu:

  • The Terminal Emulator gives you command-line access to Snellius, allowing you to manage files, run scripts, and execute commands and load modules from the Snellius software stack.
  • Default Applications: These include standard productivity and utility tools commonly available in desktop environments, such as a web browser, file manager, and text editor etc.

  • Snellius Applications:  Under “Snellius”, you’ll find applications from the Snellius software stack with GUI features such as Ansys, MATLAB, Paraview and TotalView.


Starting applications

Please note that not all software is available directly in the application menu. Some specialized modules or tools may need to be launched from the terminal, which you can open from the application menu.

Using the terminal, you can access the full software stack available on Snellius, using the normal commands such as module load. This flexibility allows you to work with all installed software, even if it isn’t integrated into the graphical application menu, or it is installed in your local home directory.

Visualization

Within an Open OnDemand remote desktop you can run visualization applications. If you allocated one or more GPUs for an Open OnDemand session (and you picked a GPU partition) then GPU-accelerated rendering for OpenGL applications should be available. You do need to take one extra step to make this work.

Not all visualization applications need or use GPU(s). However, in general OpenGL-based applications such as ParaView, VisIt or Blender do need a GPU to function effectively.

The reason for the extra step is to make sure the GPU actually gets used for rendering, which by default will not be used. For this, the command vglrun  should be used, which is available from the VirtualGL  module. Here's an example for running ParaView from the 2024 stack with GPU acceleration:

  1. Create a new Remote Desktop session, in a GPU partition and use 1 GPU (specified under GPUs). When the session has started click Launch Remote Desktop  to open the remote desktop
  2. Within the remote desktop open a terminal window using Applications > Terminal Emulator  (or use the terminal icon in the icon bar at the bottom)
  3. In the terminal emulator execute these commands:
    $ module load 2024
    $ module load VirtualGL/3.1.1-GCC-13.3.0
    $ module load ParaView/5.13.2-foss-2024a
    $ vglrun paraview


This will start ParaView within the remote desktop, including GPU-acceleration. We can check the latter in the Help > About menu and look at the OpenGL values. These show an NVIDIA H100 is being used (we used the gpu_h100 partition here).


Note that if we would not use vglrun to start paraview  the result would be different:

The words Mesa  and llvmpipe  indicate that software-based OpenGL rendering is active, i.e. no GPU(s) are used.


Don't use VirtualGL on CPU-only nodes

The command vglrun  is only needed on GPU nodes. On CPU nodes it will not work and might even result in error messages.


VirtualGL version

We used an application from the 2024 stack above, in this case ParaView. You can run applications from a different software stack as well, but need to use VirtualGL  from the same software stack. For example, for the 2025 stack use VirtualGL-3.1.3-GCC-14.2.0.

Image quality and compression

Especially for visualization tasks the image quality of the remote desktop can be important. The remote desktop image is sent in a compressed form from Snellius compute node to the noVNC viewer in your browser. Too much compression and/or low quality can introduce image artifacts that probably want to avoid.

The default settings should be good enough for most causes, but the remote desktop provides Compression  and Image Quality  settings that allow some more control. You can tweak these settings before opening the remote desktop in the browser, as seen below. 

Within an active remote desktop session you can still change these values. For this, use the control bar (described in the next section), specifically the wheel icon and settings available under Advanced .

Control bar

The noVNC browser-based client used for the Open OnDemand remote desktop has a control bar where a number of advanced settings and functions are available. You can make the control bar visible by clicking the little handle with the dots and arrow on the left side of the screen.

The wheel icon opens a section with a number of settings, including controls for image quality (as described in the previous section). 

Copy-paste

In some situations copy-paste using normal keyboard shortcuts doesn't work as it should within the Open OnDemand remote desktop. It is a browser-based session, and depending on the browser and operating system you are using, this might not always work as well as it should.

In this case the Clipboard area in the control bar might be of help. 

Whenever you select text within the remote desktop it gets copied to the Clipboard area. This works both for selecting text with the mouse in any application, as well as (say) using Ctrl+C to copy, or Copy Link in a browser window. In all cases the text will be placed in the Clipboard area. Any text present in the Clipboard area is available to be pasted within the remote desktop session using a normal Ctrl+V action (or Paste menu item). 

Copying text between the remote desktop session in your browser and other applications on your laptop/workstation can especially cause issues. In this case the Clipboard area offers a workaround: you can select the text in the Clipboard area, use Ctrl+C to copy it to your browser's clipboard and then use it from there. So this is a two-step process: 1) copy text within the remote desktop from the source of interest (it gets placed in the Clipboard area), 2) select the text in the Clipboard area and copy again to make available outside of the remote desktop.

Here's an example where some debug information was selected in a terminal window running inside the remote desktop (and automatically copied to the Clipboard area), which was then selected in the Clipboard area and copied with Ctrl+C, to be pasted in another application.

The Clip area is a normal text area within your browser, so text can also be pasted there from outside of the remote desktop session. This then makes that text available within the remote desktop session for pasting.