SC26AI agents lab + dinner on the river · Nov 17
Parallel Works

About Interactive Sessions

Parallel Works publishes a set of workflows called interactive sessions which makes it easy to get started with many interactive applications on ACTIVATE. These workflows are available on the ACTIVATE Marketplace and their source code is publicly available on GitHub.

Need a desktop?

For a graphical desktop anywhere, on your user workspace, a cluster's login node, or a compute node, use a Desktop session. Desktop sessions launch in one click and can request a compute node through the cluster's scheduler. Use the interactive session workflows on this page when you need one of their packaged applications or are building your own.

Running Interactive Sessions

You can run interactive sessions either inside your user workspace on ACTIVATE, or on any cluster's controller or compute nodes. Running an interactive session on a controller or compute node requires a running resource. If you plan to run an interactive session in your ACTIVATE user workspace, you do not have to have a resource running. In general, it’s best to only run lightweight interactive session applications in the user workspace, such as small tests or running a Jupyter Notebook that launches jobs on other resources.

If you want to practice with a sample interactive session, you can follow our Jupyter Notebook instructions or explore other interactive sessions in the Parallel Works Marketplace, especially JupyterLab, NGINX, and RStudio.

To run any interactive session:

  1. Add the interactive session workflow you want from the ACTIVATE Marketplace. If you’re importing files from GitHub instead, we suggest building your own workflow.
Screenshot of the user adding an interactive session workflow from the Marketplace.
  1. Start your resource if you plan to run the interactive session on a controller or compute node.

  2. Go to Workflows > Your Workflow > Execute workflow and choose the resource where you want to start the server.

Screenshot of the user clicking an interactive session workflow on the Workflows page. Screenshot of the user clicking Execute workflow on the workflow page. Screenshot of the Service Host dropdown menu being selected.
  1. Enter or review the other input parameters on the Execute page. You can find detailed descriptions of each parameter by hovering over the help tip icons next to their labels.
Screenshot of the Controller dropdown menu being selected.
  1. Click the Execute button to launch the job.
Screenshot of the user clicking the Execute button.
  1. When a connection has been established and your workflow is ready to use, a notification will appear in your Inbox. Please note that the connection is established only after the server is running. There may be a wait time if the job is in a queue, if compute nodes are starting, or if the job is installing required software. For more information on the job's status, you can check the Logs module.
Screenshot of the session-ready notification in the Inbox.

The notification is shown in the form of [Partition Type]@MGMT-[Username]-[Resource Name]-[Partition Number].

To access the server, go to the Sessions page and click the View session icon on the session's row.

Screenshot of the user clicking the View session icon on the Sessions page. Screenshot of the MATLAB running as an interactive session.

Pictured: the Desktop workflow running as an interactive session. The default desktop Getting Started window can be removed with the close box in the upper right corner to reveal a standard desktop environment. This environment is the desktop on the resource specified at the launch of the workflow (i.e. a cluster head node or worker node).

  1. When you’re done, go to the Runs page and click the Cancel Run icon to stop the job.
Screenshot of the user clicking the Cancel Run icon on the Runs page.

Developing Interactive Sessions

The rest of this page is for developers who want to customize an existing interactive session or build a new one. Most users only need the section above.

Interactive sessions are ordinary workflows that declare a sessions definition in their YAML. The workflow starts a web service on the cluster, and ACTIVATE makes it available on the Sessions page. The workflow does not need to create SSH tunnels or open ports: ACTIVATE reaches the service through the cluster's agent connection.

A session in the interactive_session repository is made of three files:

FileRuns onPurpose
controller-v3.shController (login) nodeInstalls software and downloads dependencies before the service starts
start-template-v3.shController or compute nodeStarts the web service on the port it is given (service_port) and writes a cancel.sh script that stops it
Workflow YAMLPlatformDefines the input form, declares the session, and calls the shared session_runner subworkflow

The session_runner subworkflow allocates service_port, starts the service on the node you choose, and runs cancel.sh when you cancel the run.

For a complete walkthrough, see the Developer Guide on GitHub.

Customization

Workflow users can contact us to further customize existing workflows. For example, we can expose or enforce any Slurm or PBS directives, connect to existing services, change the service configuration, or start the GUI for a given software in the desktop.

Any of the following folders on GitHub can serve as starting points:

Any directory in the repository with a start-template-v3.sh file is its own service.