====== Open On-Demand and Interactive Applications ======
Whilst most use of the HPC facilities is traditionally undertaken by logging in with SSH to a login node and then submitting Slurm SBATCH job files, it is becoming increasingly common to need graphical output - either from data generated on one or more compute nodes, or to run interactive, heavy applications directly on the compute nodes themselves.
There are two main methods for achieving this:
* [[#Open OnDemand]] - A modern replacement to running more complex graphical applications on HPC without any special software or local setup
* [[#SSH and X11 Tunnelling]] - The traditional method of display HPC graphical output on your local device
We recommend the use of Open OnDemand over the older SSH + X11 tunnelling mechanism. It is more configurable, can be restarted, offers connections direct to compute nodes and does not impact other users of the login nodes.
===== Open OnDemand =====
**This section is incomplete**
This documentation section on //Open OnDemand// is still being written and will not be complete until the **Comet** HPC facility is fully commissioned.
Open OnDemand is a suite of tools and services which makes it easy to start up and access graphical applications on compute servers, like our HPC facility.
We use Open OnDemand to launch more demanding, graphical applications (such as Jupyter, Matlab, ANSYS, R Studio etc.) on your behalf, and you then access them directly in your web browser, without the need for any additional software.
The applications run directly on the HPC, taking advantage of the massive CPU compute power and large RAM capacity of the compute nodes, allowing you to run demanding interactive code on the same hardware that would typically only be accessible by writing a [[started:first_job|Slurm job script]].
If you need additional compute resources but don't need to run job scripts or access a Linux command line, then this may be an option for you.
* https://openondemand.org/ - Open OnDemand project website
* https://osc.github.io/ood-documentation/latest/ - Technical implementation details of the Open OnDemand software
----
==== Open OnDemand Resources ====
All resources that are allocated during the setup of your Open OnDemand session are counted towards your Slurm job resource utilisation as per normal [[started:resource_overview|Slurm resource allocation and costing]]. Remember that the //larger// the amount of resources you request, the //longer// it may take for the Slurm scheduler to find and allocate a compute node to run your application, and the //more costly// the charge if using **paid** partitions.
**Only allocate the resources you need!**
=== Connecting To Open OnDemand ===
Our Comet HPC Open OnDemand interface can be accessed from anywhere in the world using a standard web browser (Chrome, Edge, Safari, Firefox etc.). Simply browse to:
* https://ood01.comet.hpc.ncl.ac.uk
You do not need any special software installing on your computer, as long as your web browser is up to date there is nothing else required - no firewall rules, no client software, no special permissions.
=== Disconnecting ===
After you have started one or more of the Open OnDemand application sessions listed below, you can close the browser tab with that application in. This will not affect the running application(s) in the session - it will continue to run until the //Time Limit// you set is expired.
Do not leave Open OnDemand applications running if you do not need them - they use resources which could be used for other users who may be waiting. Close the application and end the session if you are finished.
=== Reconnecting ===
As long as you are within the //Time Limit// set when creating the session, just logging in to the Open OnDemand dashboard and clicking the //My Interactive Sessions// menu will allow you to reconnect to any running applications.
----
==== Available Applications ====
The applications below are available to be launched directly from Open OnDemand. Some of these may also be already installed on Comet and intended to be accessed via the command line for batch processing. The applications listed here are specifically for use in interactive, desktop application form.
Please consider reading our [[:started:index|Getting Started]] section or signing up for one of the [[:training:index|Training & Workshop sessions]] if you want to use any of these applications in their more traditional, HPC, batch-processing, scheduler form.
== VNC Desktop Session ==
The VNC Desktop Session allows you to start a full Linux desktop environment on one of the Comet compute nodes. You may run xterminals, start editors, browse files and run any other software you wish. OpenGL is supported both via MESA (for software drawing) or optionally on the Nvidia GPU cards (for hardware accelerated rendering or CUDA access).
* [[:advanced:software:x11|Linux X11 Desktop help guide]] - a guide to using the VNC Desktop Sessions on Comet
== Ansys ==
== CryoSparc ==
== Doppio ==
== FastQC ==
== Freesurfer ==
== FSL ==
== Gmsh ==
== GRASS ==
== jmol ==
== Jupyter Lab ==
You can start an instance of Jupyter directly from the Open OnDemand dashboard and connect to it from anywhere in the world using just your browser. Your Jupyter session can take advantage of the compute resources of any of our Slurm compute partitions, including making use of Nvidia GPU cards via CUDA.
* [[:advanced:jupyter|Jupyter Lab help guide]] - a guide to running Jupyter on Comet
== Matlab ==
Matlab can be started directly in your browser without needing to launch a desktop. You can run the full Matlab desktop application on one of the compute nodes of Comet; choosing from standard compute nodes, large memory or even GPU nodes to access the Nvidia cards via CUDA, if required.
* [[:advanced:matlab|Matlab help guide]] - a guide to running Matlab on Comet
== Mrtrix ==
== R Studio ==
You can run the R Studio desktop environment on Comet and access it directly within your browser. You can choose to run R Studio on most of the Comet compute resources, including; standard or large memory nodes as well as on GPU nodes and access the Nvidia cards via CUDA in your R or Python applications.
* [[:advanced:rstudio|R Studio help guide]] - our guide to running R Studio on Comet
== StarCCM+ ==
=== Additional Applications ===
The applications listed above are specifically published in the Open OnDemand dashboard and can be launched //directly//. In addition, all normal applications installed on Comet (either in a module, or installed in your own ''$HOME'' or group ''/nobackup'' directories) can be started from a VNC Desktop Session as if you were running a normal Linux workstation desktop environment.
----
===== SSH and X11 Tunnelling =====
The traditional method of displaying Unix/Linux graphics remotely is through the use of X11 forwarding; this runs the application on a remote system (e.g. **Comet** or **Rocket**), but forwards all of the graphics commands to a local display (e.g. your laptop).
The SSH protocol includes support for embedding these graphics commands through a process known as //X11 Tunnelling//.
This works reasonably well for most simple applications and has been the __only__ option open to users of **Rocket**, it is still supported on **Comet**.
A small number of applications simply won't work via this route as they are more complex, require specific X11 API/library support (which may differ between **Comet** and your local device) or require direct access to GPU hardware to run. It is not always possible to know in advance which these are - if you encounter one, please let us know and we will add a note to the [[advanced:software|Advanced Software Topics]] section.
**We no longer recommend** SSH + X11 tunnelling for the display of graphical applications on Comet, please instead consider the use of Open OnDemand if your use case requires graphical output.
==== Windows ====
Whilst it is possible to configure **PuTTY** to support X11 displays launched over SSH, it is no longer the recommended option for Windows users as it relies on additional software (XMing) which is no longer kept updated.
Instead, please consider the use of [[https://mobaxterm.mobatek.net/]] which includes the support all within the one application.
==== Linux ====
All modern Linux clients (e.g. Ubuntu on your local desktop or laptop) have support for displaying the output of applications launched on the HPC system. Normally you would connect to the HPC facility and add the ''-X'' option to your ''ssh'' command:
ubuntu $ ssh -X comet.hpc.ncl.ac.uk
login01 $
Any applications/tools then launched from Comet would display their windows/dialogue boxes/graphical output on your local Linux desktop. In most cases this is transparently activated after adding the ''-X'' option.
This approach works for most simple tools and applications, but it is **no longer the recommended option for larger applications**, or those requiring accelerated GPU hardware. Please jump to the [[#Open OnDemand]] section for further details.
==== Mac OS ====
mymac $ ssh -X comet.hpc.ncl.ac.uk
login01 $
Normally, to support remote display of Linux applications launched over SSH connections, you will need to have installed and configured **XQuartz** on your Mac OS system. Support for this is outside the scope of what we can offer, but once installed the behaviour should be largely identical to that of native Linux users, as detailed above.
* https://www.xquartz.org/
----
[[:advanced:index|Back to Advanced Topics]]