Skip to main content

 

There is a new way to access the Longleaf cluster called Open OnDemand. This is a web-portal that provides a shell, file browser, and graphical interface for certain apps (like Jupyter, MATLAB, and R).

Note that in order to get the full benefit of the web portal it is necessary that you already have a Longleaf account prior to logging into Research Computing’ s Open OnDemand service.

To get started, in your web browser, navigate to:

https://ondemand.rc.unc.edu

 

Authenticate with your ONYEN/password. You will then be at the main page (if you do not already have a Longleaf account you will be presented with instructions for getting one):

Along the top are a pull-down menus for a File Browser, a Job Builder, a shell, and a list of Interactive Apps.

 

 

File Browser

 

The file browser is a graphical interface to manage, upload, and download files from Longleaf. You can drag and drop files, download entire directories, and also move files between directories all from within the web browser.

 

Shell

You can launch a traditional command-line interface to the cluster using the Shell pull-down menu. This opens a terminal in a web-browser that you can use in the exact same way as when logging into the cluster via SSH.

 

This is a convenient way to access the clusters from a computer that does not have a terminal program.

 

 

Remote Desktop

Occasionally, it is helpful to use a graphical interface to explore data or manage certain programs. In this case, users have typically utilized VNC or X11 forwarding. Both of these tools have complications, either in complexity of setup or in performance. The Remote Desktop option from OOD simplifies the configuration of a VNC desktop session on a compute node.

First request the desktop application, i.e. anything under Desktops or GUIs, which you would like to use. Here we choose the Python Spyder IDE.

You will next see a form to specify the resources you’d like for the job. Specifically the duration of the job, the number of cpus, etc. Below we ask for two hours and one cpu. We also optionally specify a 6 Gb memory limit and give the job a name of “spydergui”. If you wish you can also receive an email notification for when the job starts. Once you have filled out the form click Launch.

 

Once you launch the job, you will be presented with a notification that your job has been queued. Depending on the resources requested, your job should be scheduled within minutes. Then you will see the option to launch your session. Choose your display settings and click the launch button for your particular application, in this case Launch Spyder.

 

 

A desktop interface will open in a new tab and in this case you should see the Spyder GUI.

 

 

Interactive apps

We have deployed a selection of interactive web server apps in Interactive Apps menu under Servers. Currently, we have apps for Jupyter Notebook and RStudio Server. The process for launching each of these is very similar to that for a Remote Desktop app.

First, request the Server application that you would like to use. Here we choose RStudio Server.

 

You will next see a form to specify the resources you’d like for the job. Specifically the duration of the job, the number of cpus, etc. Below we ask for one hour and one cpu. We also optionally specify a 9 Gb memory limit. Once you have filled out the form click Launch.

 

 

Once you launch the job, you will be presented with a notification that your job has been queued. Depending on the resources requested, your job should be scheduled within minutes. Then you will see the option to launch your session. Choose your display setting and click the launch button for your particular application, in this case Connect to RStudio Server.

RStudio Server will open in a new tab and in this case you should see the RStudio GUI.

 

Job Composer

You can submit non-interactive batch jobs to the Longleaf cluster from within the web portal. To facilitate this process we’ve included job submission templates for commonly used research applications. In this example, we’ll submit a batch Python job to Longleaf using an existing Python job template.

 

You can use the Jobs menu to access the Jobs Composer app.

 

We will next choose From Template from the New Job pull down menu.

Jobs

The next step is to choose the Python template “python_ll” and click on Create New Job.

You will then be taken to a page with various job details and an option to submit the job.

 

 

A few things to note under Job Details is that the SLURM working directory is given in the “Script location” box. This directory will contain the job submission script, in this case “python_job.sl”, as well as the SLURM output file that SLURM automatically creates when the job completes. Under the “Folder Contents” section if you click on the job submission script you can edit the job submission script file to your needs:

For this particular job, the Python script is located in /nas/longleaf/home/$USER/jobsubmit and the name of the script is simple_test.py.

 

So these two values need to be edited and saved in “python_job.sl”. Then you can close the editor.

 

 

You can then click “Submit” to submit the job. The status will change from Not Submitted to Queued.

 

Troubleshooting

 

Your session may occasionally enter a “bad state”:

 

If this happens first delete the job using the Delete button to the right. If you are unable to delete the job this way then open a Longleaf shell which you can do in Open OnDemand (see Shell section) and at the terminal run the SLURM scancel command using the job’s id number (54777337 in this case)

 

 

Next return to the Open OnDemand Dashboard and restart the web server.


 

Finally start a new session choosing the application you want to use.

If you continue experiencing the “bad state” error then, after you’ve deleted the job, simply log out and back into the web portal and start a new session for the application.

If neither of these suggestions works you should delete the job, open a Longleaf shell, and delete the folder under ~/ondemand/data/sys/dashboard/batch_connect/db corresponding to the app having the “bad state” problem (bc_uncrc_fsl in this case)

 

Then start a new session choosing the application you want to use.