Your first time using a supercomputer like Sol can be intimidating, but it does not have to be. This guide will get you started with the basics. If you run into problems or need additional help, we hold regular weekly office hours.
This document assumes you have an account on the Sol supercomputer and that you are familiar with our Acceptable Use Policy. Accounts can be requested at https://links.asu.edu/getHPC
This document assumes a basic familiarity with the Linux command line. If you are new to Linux, or need a refresher, Research Computing has created a guide at The Linux Shell on the Sol Supercomputer.
Quick Start
For users who have never used a supercomputer before, we recommend reading through the “Detailed Start” section of this document.
For those who wish to get started quickly, here is the general overview:
Connect to the ASU Cisco AnyConnect VPN
Login with your ASURITE & password
Choose a connection method (terminal / web portal)
Transfer needed files
Run an interactive session or create an SBATCH script
Access mamba for Python environments, and other public software modules
Important Terms
HPC: Short for “High Performance Computing” it refers to a group (or a cluster) of interconnected computers designed for parallelism across many computers at once. Publicly these are often called “supercomputers”.
Node: A single machine in a supercomputer. This will be either a physical machine or a virtual machine.
Login Node: A node intended as a launching point to compute nodes. Login nodes have minimal resources and should not be used for any application that consumes a lot of CPU or memory. This is also known as a “head node”.
Using the login nodes for computing work will result in temporary penalties on the account, e.g., do NOT install Python packages or connect to vscode on a login node.
Compute Node: Nodes intended for heavy computing. This is where all heavy processing should be done.
Job: Work assigned to be done on a compute node. Any time a compute node is assigned a job is created.
Memory (RAM): Short for “Random-Access Memory“. This is used for the amount of memory that each calculation or computation requires in order to execute and complete successfully. The term “memory“ is not used for disk space. This is another main component that defines a node.
CPU: Short for “Central Processing Unit”, also called a core. This is one of the main components that defines a computing device, such as a node.
GPU: Short for “Graphic Processing Unit”. This is a specialized piece of hardware that can enable and accelerate certain computational research.
Scheduler: The application on our end that manages and assigns (allocates) compute resources for jobs. The scheduler used on the ASU Supercomputers is called Slurm.
Detailed Start
Connect through the Cisco VPN
All Research Computing resources require the user to be connected to the ASU Cisco AnyConnect VPN. This is encouraged for all users, regardless if they are on campus or off campus.
Be sure to connect to sslvpn.asu.edu/2fa
. If prompted for a “second password,” provide either push
to receive a DUO push request, phone
to authenticate via a phone call, or sms
to authenticate via a text message.
For additional details or to install the software, please navigate to this page.
PLEASE NOTE: If you are having trouble connecting to the ASU VPN you will need to contact ASU Enterprise Technology. Research Computing cannot assist with issues with the VPN.
Choosing a Connection Method
Research Computing provides two methods for connecting to the supercomputer. Each has their advantages and disadvantages.
/wiki/spaces/RC/pages/677478401
The web portal has become the standard for new users. It provides a file system viewer and editor, a job submission tool, the ability to view the job queue, and a zoo of interactive applications including a virtual desktop, Jupyter Lab, and RStudio. In the file manager, uploading files is as easy as dragging and dropping through the interface! This web portal is accessible through sol.asu.edu.The virtual desktop provided by sol.asu.edu is the best way to use graphical applications on the supercomputer. However, please try to avoid using graphical sessions unless you are first learning how to work with the supercomputer or you’re working with software that is only accessible through a graphical user interface. The goal of any interactive session on the supercomputer should be to develop a working /wiki/spaces/RC/pages/1643905055 so that you may properly begin to take advantage of what supercomputing offers.
/wiki/spaces/RC/pages/1643905025
SSH is the most versatile method. It is ideal for submitting jobs at scale by allowing you to create custom workflows, submit multiple jobs simultaneously through job arrays, and explore options to avoid data loss through dependencies. However, it tends to be slower with interactive graphical applications. If you intend to use MATLAB graphically (as opposed to MATLAB command line only) the screen draw will be very slow. For graphical applications, we recommend our web portal instead.
Login to the Supercomputer
You are now ready to reach the login node! The login node is intended as a launching point to allocate compute nodes for your job. You only need to provide your ASURITE and password, if prompted.
The login node is running software called arbiter2. Arbiter2 monitors and protects interactive nodes with cgroups. It records the activity on nodes, automatically sets limits on the resources available to each user, and notifies users and administrators by email when users are penalized for using excessive resources.
Transfer Needed Files
This is optional. However, most research requires data sets or other files to be imported. For details, please see these tutorials on Transferring Files to and from the Supercomputer or using Google Drive & Globus.
Run an Interactive Session or Create an SBATCH Script
If you are using an interactive app provided in the web portal, this section can be skipped. If you are using a personally installed version of RStudio or Jupyter, please continue reading this section.
There are three ways to use resources on the supercomputer:
Creating an interactive session in the web portal using an interactive app, such as Jupyter, RStudio, or MATLAB. This will assign a compute node to your interactive session in an interactive app of your choice. This is a great option for users to become familiar with using the supercomputer as well as to develop, test, and debug code.
/wiki/spaces/RC/pages/1643839520 in the shell. This will assign a compute node and connect your command prompt to it. This is good when working by hand to establish the commands needed to run your work. When your session disconnects, the interactive session also closes. Any unsaved work will be lost.
/wiki/spaces/RC/pages/1643905055. This is a method of telling the scheduler you want an unattended (or non-interactive) job to run. When a
sbatch
script is submitted, the job will run until it either completes, fails, or runs out of time. Thesesbatch
scripts can be submitted through the shell or through the “Job Composer“ in the web portal.
Working with Python
Do not install conda/miniconda/mamba/micromamba
etc. by yourself.
Using Python on supercomputers is a little bit different than on workstations or local computers. We use mamba
instead of conda
or pip
. Please follow our guide closely for the best practices with Python on the supercomputers: Working with Python
Working with software
The system-wide installed software applications that are open to all the users, are often presented in the form of software modules or containers on supercomputers. Please follow this guide for how to find and use software: Using Software Modules
Recommended Reading
The page linked above will cover additional details on the supercomputer environment which will assist in maximizing your results.
Helpful Tips
If your job is failing, a Job ID helps us significantly as we can pull detailed information about the job.
If you are new to Linux, or need a refresher, Research Computing has created a guide at The Linux Shell on the Sol Supercomputer. For a great reference on building proficiency with command-line tools, we provide the following MIT link from CSAIL.
Additional Help
If you require further assistance on this topic, please contact the Research Computing Team. To create a support ticket review our RTO Request Help page. For quick inquiries, reach out via our #rc-support Slack Channel or attend our office hours for live assistance.
We also offer a series of Educational Opportunities and Workshops.