Requesting Access to an HPC Cluster
Access to the HPC clusters is gained through requests submitted by a contributing faculty member (often your PhD advisor). When requesting access, please follow the steps outlined below:
- Speak with your PhD advisor to discuss your need for HPC resources. Obtain their approval and sponsorship.
- Have your sponsoring faculty member provide the necessary information to the cluster administrator, including:
- Full Name
- Your ANDREW or SCS ID (see table below)
- The cluster to which the account should be added
- Any specific software or tools required
- Custom shell (default: bash)
- User account expiration date (if desired)
- If the cluster uses SCS accounts, the faculty member or PhD advisor should send the request to help@cs.cmu.edu
- If the cluster uses ANDREW accounts, the faculty member or PhD advisor should send the request to dvosler@cs.cmu.edu
- Once the application has been received, the cluster administrator will provision your account.
SSH Login
You will need an SSH client to connect and log in to the cluster. Different clusters use different authentication sources. Refer to the following table to determine whether to use your ANDREW or SCS ID:
Cluster Name | User:Pass |
ATLAS | ANDREW |
BABEL | ANDREW |
BOSTON | ANDREW |
To log in to a cluster, use the following command, replacing <username>
with your username and <mycluster>
with the fully qualified domain name (FQDN) of your cluster:
ssh <username>@<mycluster>
Passwordless Login
If you want to bypass password authentication, you can use SSH key authentication. SSH keys allow you to connect to a server or multiple servers without entering your password each time.
To generate an SSH key pair, follow these steps:
- On your local machine, generate an SSH key:
ssh-keygen -t ed25519 -C "[$(whoami)@$(uname -n)-$(date -I)]"
- Automatically add your public key to the server by running the following command (use your ANDREW password):
ssh-copy-id -i ${HOME}/.ssh/id_ed25519.pub <username>@<mycluster>.
- You can also configure your
~/.ssh/config
file to avoid typing the full cluster address every time. Add the following lines to the file:
Host <mycluster> HostName <mycluster> User <username> IdentityFile ${HOME}/.ssh/id_ed25519
- Then, you can log in with the simple command
ssh mycluster
.
Shell Configuration
If you would like to set or change your shell on all nodes of the cluster, including login and compute nodes, please follow these steps:
- Send an email to help@scs.cmu.edu to request a shell change.
- Specify your desired shell:
- bash
- zsh
If you require a different shell than the ones mentioned above, please notify the support team, and they will assist you accordingly.
Note: not implemented on all clusters.
Connecting to a Compute Node
You can also ssh directly to a compute node where you have a job already running by doing:
ssh -J babel babel-X-XX
Copying Data to Compute Nodes
To copy data to compute nodes when the data directories are not directly accessible from the login nodes, you can utilize the login node as a JumpHost, allowing direct connections to the compute nodes. Follow these steps to configure SSH and establish the connection:
- Launch an interactive job on a compute node.
- Determine the IP address of the compute node by executing the
ip a
command on the compute node itself. - Update your SSH configuration file located at
~/.ssh/config
with the following entries:
Host <mycluster-short-name> HostName <mycluster-fqdn> User <username> IdentityFile <identityfile>
Host <mycluster>-compute-node HostName <node ip addr> User <username> ProxyJump <mycluster>
Replace the relevant items in < >
with your actual username, cluster name and the path to your SSH private key file. For example, to connect to a node in the Babel cluster:
Host babel HostName babel.lti.cs.cmu.edu User <username> IdentityFile /path/to/identityfile
Host babel-compute-node HostName <node ip addr> User <username> ProxyJump babel
The updated configuration allows you to establish a connection to the compute node through the login node, acting as a JumpHost.
Refer to your cluster's dedicated page in the Cluster's section for more detailed information.
Why is there an SSH key pair in the home directory upon first login?
~/.ssh/known_hosts
. To prevent this behavior, we create the SSH keys and add the fingerprint to ~/.ssh/known_hosts
upon the creation of the user's home directory.