How to Use Your chip Account

Introduction

This page provides information on the cluster chip in the UMBC High Performance Computing Facility (hpcf.umbc.edu).
This distributed-memory cluster went live in early 2025. It comprises really two clusters, namely the CPU cluster chip-cpu and the GPU cluster chip-gpu. In many commands below, you need to or are able to restrict attention to only one them with the option --cluster=chip-cpu or --cluster=chip-gpu. I will use this in many examples.

The following sections address first how to connect to and log in to chip and second a discussion of some useful Linux commands. The first connection tutorial offers several ways to accomplish this, depending on your goal (for instance, non-graphics or graphics connection desired) and depending on the computer/laptop/operating system that you start from. The second discussion of Linux commands assumes that you are in a bash shell on chip and applies no matter your own computer/laptop/operating system.

How to Get a chip Account

To connect to chip, you first need a UMBC account with a username. UMBC creates only a Campus ID of the form AB12345 for everyone, not a username. A Unix username is at most 8 characters long and has often the form of mgobber1 or matthiag1. Once you have a Campus ID, you need to create a username yourself. Instructions for creating a username can be found here.

With your username, you then file an account request at the HPCF webpage in the User Support tab (right side of top) under Help Request. You will need a sponsor for your account who will get an e-mail asking for approval.

Connecting and Logging in to chip

From now on, it is assumed that you have and know your username. For me, this is “gobbert” and that will appear in the following examples. Replace “gobbert” by your username in most cases.

The best sequence of steps to connect to chip is as follows.

Start a VPN on Your Computer/Laptop

It is best to start a VPN (= Virtual Private Network) on your computer/laptop before connecting to chip; if you do not start a VPN first, you will need to use Two Factor Authentication with Duo Mobile (or some alternative method).

For Windows and Mac users, documentation and download instructions for the UMBC Global Protect VPN are
here. The instructions end with running Global Protect.

For Linux users, please refer to the official instructions provided by Palo Alto Networks:
https://docs.paloaltonetworks.com/globalprotect/6-2/globalprotect-app-user-guide/globalprotect-app-for-linux/use-the-globalprotect-app-for-linux

You can download the zipped .tar file for the Linux client here:
https://drive.google.com/file/d/1cKFRjv8bt0JQ0h_eS2kXLQhtQbbDfZs7/view?usp=sharing

 

Logging in to chip

The cluster chip is a distributed-memory Linux cluster. You connect to the usernode with address chip.rs.umbc.edu. This usernode runs the Linux operating system. Behind this usernode are more than 100 powerful compute nodes, each with their own memory and connected by a network; this type of cluster is called a distributed-memory cluster, since the overall memory of the system is distributed to the nodes and each node’s memory only accessible on that node. Physically, each node has roughly the shape of a pizza box. These are stacked in several racks of nodes and network cables come together in a switch to connect them. The system is located in a climate-controlled computer room with significant extra cooling power. You could heat a home with the heat created by the nodes, especially when all computational cores on a node are in use.

If you are using Linux on your computer/laptop or your computer/laptop runs Mac’s operating system (which is really a version of Linux), open a Terminal on your computer/laptop.

For Windows users, use the application Windows PowerShell built into the system; search for PowerShell in the Start menu. This gives you a Terminal like above for Linux and Mac.

Then, in any of the Terminal shells mentioned in the previous paragraphs, type

ssh gobbert@chip.rs.umbc.edu

to connect to chip; here, “gobbert” is my sample username that you replace by your username. This simple connection is non-graphical; if you wish to allow for a graphics connection, use the -Y option as in

ssh -Y gobbert@chip.rs.umbc.edu

with your username instead of “gobbert”.

(Sidenote for Windows: Actually using a graphics connection to a Windows computer/laptop is more complicated, though. You will need to install an application like XLaunch or XMing on your Windows computer/laptop. See a subsection below for more details.)

After connecting with one of the above commands, you will be prompted for your UMBC password. UMBC uses SSO (Single SignOn), hence there is no separate password for chip. If you do not have a VPN running (see above), then you will be prompted for a Duo push (or one of the alternative ways to do two factor authentication). If you have the VPN running, you only need the password. Upon the very first login, you might have to confirm that you indeed wish to connect.

The startup screen should look like this, where I am also showing the first few lines from the Microsoft PowerShell in my case, before the line with the ssh command:

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

Try the new cross-platform PowerShell https://aka.ms/pscore6

PS C:\Users\gobbert> ssh gobbert@chip.rs.umbc.edu
(gobbert@chip.rs.umbc.edu) Password:
================================================================================
              Welcome to the chip cluster environment login node.
                           Cluster Status: Normal Operation
--------------------------------------------------------------------------------
Update 20250519T0930
 - "quotas" module added to login node for storage summaries
--------------------------------------------------------------------------------
Please remember:
1) Use slurm--not the login node--to build software and run jobs
2) Research Storage is not backed up
3) Installed software is viewable on the login node via
        `module avail` but will run only on slurm allocations
4) Be a good Gridizen
--------------------------------------------------------------------------------
Review User Documentation:
  https://umbc.atlassian.net/wiki/spaces/faq/pages/972750849/Research+Computing
--------------------------------------------------------------------------------
Submit a Descriptive Help Ticket for any comments/questions/concerns:
       
Research Computing
================================================================================ Last login: Wed May 28 12:00:16 2025 from 130.85.47.139 Home Directory: /home/gobbert 5.8M(~2%) of 500M used [gobbert@chip ~]$

The last line above is the Linux command-line prompt; it indicates my username (you should see yours), the usernode “chip”, the location where I am (namely in my home directory indicated in Linux by “~”), and the dollar “$” sign for the prompt. Right next to the “$” prompt you should see the cursor, indicating that you can type a command there now.

Graphics connection to a Windows computer/laptop

The Linux cluster chip sends graphics data in X11 format. To display this on a Windows operating system, you need to run an application that can receive and convert this data. One application is XLaunch. [TMP: link to download and information.]

How to test a graphics connection: In a Linux shell on chip, run the command “xterm” which should open a terminal window. There may be a delay of a number of seconds, since graphics connections take time. After such a delay, a terminal “xterm” window should open. It is a Linux shell just like your previous one. We do not really want to use it, but just use it as test that the graphics connection allows for this window from chip to open on your screen.

Other Types of Connections on chip Itself

After your have reached chip with a terminal like above, you can start editing files, etc. on the user node and you can start jobs using a slurm file by sbatch on the user node. For the example of compiling and running C code, you can continue to the Compile tutorial and Run tutorial.

Continuing here, I am pointing out that some other connection types may be needed on chip, namely an interactive session on a compute node if you need to load modules and additionally a different way to connect to a compute node in an interactive session, if you need a graphics connection from that node. Both these are explained in the following.

How to Start an Interactive Session

I motivate this by the requirement to load a module or several modules. But you might also just want to use an interactive session if your editing work is more substantial in nature, such as compiling or building large code. If you need to load module(s) to work, you need to use a compute node (instead of the user node), since the usernode cannot load modules. You need to use an interactive session and load the module(s) there. For example, I use the following srun command, which runs a bash shell for up to 7 hours on the match partition of the 2024 CPU nodes (I use 7 hours to cover a typical workday for me; you can use shorter, but may not want to go much longer for an interactive session):

srun --cluster=chip-cpu --account=pi_gobbert --partition=match --qos=shared --time=07:00:00 --mem=4G --pty $SHELL

How to Start an Interactive Session with a Graphics Connection

The above does not make a graphics connection. If graphics connection is intended, get an allocation of a (portion of a) node with X11 tunneling by salloc first, then ssh to the node. The salloc command is the same as the srun above, but with the -pty $SHELL at the end of the srun line removed; you need to wait which node you get, then use that hostname to ssh to. Here is a sample session:

[gobbert@chip ~]$ salloc --cluster=chip-cpu --account=pi_gobbert --partition=match --qos=shared --time=07:00:00 --mem=4G
salloc: Granted job allocation 73057
salloc: Nodes c24-29 are ready for job
[gobbert@chip ~]$ ssh c24-29

You see above that I waited for the information “Nodes c24-29 are ready for job” to know which node was allocated for me. Then I started my interactive session with the “ssh” command to that node. You have to wait for this, since any available node may be allocated to you.

Example of Interactive Session with Graphics Connection

I am going to use the example of the typesetting system LaTeX as a software that requires both an interactive session (to load modules) and a graphics connection (to display its output in the form of a PDF file).

In the interactive session on a compute node like c24-29 in the sample session above, to use LaTeX, load modules to use pdflatex and xpdf by

module load texLive/2025
module load xpdf/4.04-GCCcore-12.3.0

Check that pdflatex and xpdf are found on the path now:

[gobbert@c24-29 ~]$ which pdflatex
/cm/shared/apps/texLive/2025/bin/x86_64-linux/pdflatex
[gobbert@c24-29 ~]$ which xpdf
/usr/ebuild/installs/software/xpdf/4.04-GCCcore-12.3.0/bin/xpdf

Now, you can compile LaTeX’s tex files by pdflatex and display their resulting PDF files using xpdf. Make sure that you have a graphics connection by “ssh -Y” from your Linux or Mac or by running XLaunch or XMing on your Windows computer/laptop.

Some Useful Linux Commands

More Details about the CPU and GPU Clusters of Chip

The HPCF webpage has a fundamental description of chip under the Cluster tab. The more detailed User Documentation is under the User Support tab on the right of the screen, where you can also file tickets under Help Request, if you need help from a system administrator or user support.

To check in real-time, if which and how many resources are available to submit a job to, we use the command sinfo. With the option --cluster=chip-cpu or --cluster=chip-gpu, you can restrict the output to one or the other cluster, depending on which you are interested in.

The following version of sinfo is invaluable to know what the key words are to request certain resources:

sinfo -o "%10N %4c %10m %40f %10G"

A sample output of this is

[gobbert@chip ~]$ sinfo -o "%10N %4c %10m %40f %10G"
CLUSTER: chip-cpu
NODELIST   CPUS MEMORY     AVAIL_FEATURES                           GRES
c24-[14-51 64   476837     location=local,low_mem                   (null)
c24-[01-13 64   953674     location=local,high_mem                  (null)
c18-[01,05 36+  182524+    location=local                           (null)

CLUSTER: chip-gpu
NODELIST   CPUS MEMORY     AVAIL_FEATURES                           GRES
g20-[01,03 96   385581     RTX_2080TI,RTX_2080ti,rtx_2080TI,2080,20 gpu:8
g20-[12-13 96   238418     RTX_8000,rtx_8000,8000                   gpu:8
g24-[01-08 32   257443     L40S,l40s,L40s,l40S                      gpu:4
g24-[09-10 32   257443     h100,H100                                gpu:2
g20-[02,04 96   385581     RTX_2080TI,RTX_2080ti,rtx_2080TI,2080,20 gpu:6
g20-[05-11 96   385581     RTX_6000,rtx_6000,6000                   gpu:8

For instance, to request 1 GPU, you would use the option gres=gpu:1 in your slurm script. But to specifically request a GPU of the type L40s, you additionally need the option constraint=L40s; notice that the list above is invaluable, since it specifies that also the spellings L40S, l40s, or l40S would work.

Jump to the Run tutorial for an introduction to slurm scripts in the first place.

Getting Started with Unix/Linux

Using a high performance computer typically involves issuing commands to a remote server through a terminal. Most commonly, a variant of Unix (such as the very popular open source OS Linux) is the operating system that is run on these machines. Therefore, it will be necessary to use the Unix command line. Here we give some resources for getting started with Unix. The information below uses PuTTY from Windows, but the MS Powershell is another option for Windows; if you have a Mac or a Linux machine, you of course use a Terminal window natively.

These videos show how quickly to get started connecting remotely to a Unix server using Windows and the program PuTTY. The second video shows how to get started in C. They are about 20 min total between the two of them, so a nice quick introduction. To clearly see what’s going on, set the quality to 720p and watch at full screen

http://youtu.be/9CZphjhQxIQ PuTTY/SSH Intro Tutorial
http://youtu.be/cn6wfl5kF24 PuTTy/SSH Intro (Basic C programs)

The first video mentions the editor pico; on chip, its newer version is nano.

This is an hour long lecture from an instructor. It covers many details about classical Unix. Again, the video is best viewed at full screen with quality 720p

http://youtu.be/v4YpWACs6Ts UNIX Tutorial

For a text tutorial on Unix, many good sources can be found by searching for “unix tutorial”. For example:

http://www.ee.surrey.ac.uk/Teaching/Unix/ UNIX Tutorial for Beginners

Available Editors on Chip

There are two professional-grade powerful editors that are available on essentially all Unix/Linux system, vim (formerly vi) and emacs. The editor vim is purely text-based and thus works predictably and reliably inside a Linux shell. The editor emacs is often used in a graphical form xemacs, when actually working on the desktop with screen itself; but this is not suitable for a remote (i.e., not located under your desk with a screen on top) cluster like chip, hence it is the text-based version emacs that is installed. It is really a question of preference which one to use. My final take in these ‘Unix editor wars’ is that vim is perfect for people like me who type 10-fingers blind, while emacs is less optimal for me since it needs the use of CTRL, ALT, etc. keys and their combinations constantly.

This Vim Tutorial for Beginners covers the Vim editor (= vi improved) and provides basic commands essential for beginners. The abundance of information in the video might be overwhelming initially, but mastering these commands will save you time, enabling you to work efficiently in vim/vi.
You may think that Vim has many commands; in such cases, the Vim cheatsheet can be helpful at the beginning of your journey in learning Vim.

There is a third editor available on chip called nano. (On some other Unix/Linux systems, it is called pico; you can see the inside joke here.) This editor is a very simple text editor, but perfectly sufficient if you only want to modify a given text file.