OpenOnDemand, HPC Portal

Introduction#


OpenOnDemand or OOD for short, is an open source Web portal for High-Performance computing, developed at Ohio Supercomputing Center. OOD makes it easier for beginner HPC users to access the resources via a Web interface. OOD also allows for interactive, visualization and other Linux Desktop applications to be accessed on HPC systems via a convenient Web user interface.

Since the end of October 2021, OpenOnDemand version 2 is officially in production on Grex.

For more general OOD information, see the OpenOnDemand paper

OpenOndemand on Grex#


Grex’s OOD instance runs on zebu.hpc.umanitoba.ca and requires the Alliance’s Duo MFA to authenticate. The OOD instance is available only from UManitoba campus IP addresses – that is, your computer should be on the UM Campus network to connect.

To connect from outside the UM network, please install and start UManitoba Virtual Private Network VPN . Note that you’d need the VPN client installation as described there; “VPN Gateway” will likely not work.

OOD relies on in-browser VNC sessions; so, a modern browser with HTML5 support is required; we recommend Google Chrome or Firefox or Safari, and their derivatives.

Connect to OOD using UManitoba VPN:

  • Make sure UM Ivanti Secure VPN is connected. This may require using UManitoba MS Entra second factor authentication.
  • Point your Web browser to https://zebu.hpc.umanitoba.ca
  • Use your Alliance (Compute Canada) username and password to log in to Grex OOD.
  • Provide Alliance’s Duo second factor authentication when asked.

Connecting from UM campus is as per above, except step 1 is not needed.


OpenOndemand login page

Once connected, you will see the following screen with the current Grex Message-of-the-day (MOTD):

File view on OpenOndemand web portal on Grex
OpenOnDemand Front Page

OOD expects user accounts and directories on Grex to be already created. Thus, new users who want to work with OOD should first connect to Grex normally, via SSH shell at least once, to make the creation of account, directories, and quota complete. Also, OOD creates a state directory under users’ /home (/home/$USER/ondemand) where it keeps information about running and completed OOD jobs, shells, desktop sessions and such. Deleting the ondemand directory while a job or session is running would likely cause the job or session to fail.

It is better to leave the /home/$USER/ondemand directory alone!

Working with files and directories#


One of the convenient and useful features of OOD is its Files app that allows you to browse the files and directories across all Grex filesystems: /home and /project.

File view on OpenOndemand web portal on Grex

You can also upload your data to Grex using this Web interface. Note that there are limits on uploads on the Web server (a few GBs) and there can be practical limits on download sizes as well due to internet connection speed and stability.

Customized OOD apps on Grex#


The OOD Dashboard menu, Interactive Apps, shows interactive applications. This is the main feature of OOD, it allows interactive work and visualizations, all in the browser. These applications will run as SLURM Jobs on Grex compute nodes. Users can specify required SLURM resources such as time, number of cores and partitions.

OpenOndemand applications on Grex

As for now, the following applications are supported:

  • Linux Desktops in VNC
  • Matlab GUI in VNC
  • GaussView GUI in VNC _ RELION GUI in VNC
  • Jupyter Notebooks server
  • RStudio server

As with regular SLURM jobs, it is important to specify SLURM partitions for them to start faster. Perhaps the test partition for Desktop is the best place to start interactive Desktop jobs, so it is hardcoded in the Simplified Desktop item.

The following links are added to OOD:

  • From the menu Jobs, there is a link Grex SLURM Queues State that shows a summary of running and pending jobs. It runs a modified version of the script grex-summarize-queue that is accessible from any login node.
  • From the menu Clusters, there is a link Grex SLURM Node State to get a summary of allocated and idle nodes by partition. The same information can be accessed from any login node by running a custom script:slurm-nodes-state