PARCC Usage
Owner: Ronnie
A simple repeatable guide to log in to Betty (the PARCC cluster) and get oriented.
Step 1 — Get a Kerberos Ticket
kinit <pennkey>@UPENN.EDU
Complete Duo if prompted. Check anytime with klist; renew with kinit -R or just re-run kinit.
Step 2 — SSH In
ssh <pennkey>@login.betty.parcc.upenn.edu
You’re in when you see the Betty banner and a <pennkey>@login0x:~$ prompt.
Two login hostnames: login.betty.parcc.upenn.edu (general) and slurm_login.parcc.upenn.edu (used in job-submission tutorials) — either works.
Optional — SSH Key Setup (skip repeated auth)
ssh-keygen -t ed25519
kinit <pennkey>@UPENN.EDU
ssh-copy-id <pennkey>@login.betty.parcc.upenn.edu
Add multiplexing to ~/.ssh/config:
Host *.parcc.upenn.edu
VerifyHostKeyDNS yes
GSSAPIAuthentication yes
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
You’re on a Login Node — No Heavy Work Here
login0x is shared, like PMACS’s hpclogin1. Light commands only (ls, cd, editing, status checks, submitting jobs). Real compute goes through a requested node (Step 7) or a batch job (Step 8).
First Orientation Commands
parcc_quota.py # your storage: home (small) vs project (big)
parcc_sfree.py # free nodes/partitions/GPU availability
parcc_sqos.py # which QOS you're allowed to request
(Make sure /vast/parcc/sw/bin is on your PATH if these say “command not found.”)
Storage
| Pool | Path | Size | Use for |
|---|---|---|---|
| home | /vast/home/<first-letter>/<pennkey> | 50 GB | scripts, configs, small files |
| project | /ceph/projects/ycheng11/ycheng11lab-hippa | 536 GB | data, models, scGPT work |
Do heavy work in the ceph project space, not home.
Step 7 — Get a Compute Node (Interactive)
Real partitions: dgx-b200 (GPU, NVIDIA B200), genoa-std-mem (CPU, AMD Genoa). Check availability with parcc_sfree.py or sinfo.
salloc -p genoa-std-mem --cpus-per-task=4 --mem=16G --time=02:00:00
srun -p dgx-b200 --gpus=1 -t 00:01:00 nvidia-smi # quick GPU test
srun --pty -p dgx-b200 --gpus=1 --cpus-per-task=8 --mem=64G --time=02:00:00 bash # interactive GPU shell
On the node:
module load anaconda3
source "$(conda info --base)/etc/profile.d/conda.sh"
conda activate <your-env-path>
exit to release the node when done.
Step 8 — Submit a Batch Job
For training/long runs, don’t use interactive — write a script and sbatch it:
#!/bin/bash
#SBATCH --job-name=scgpt
#SBATCH --output=slurm-%j.out
#SBATCH --time=04:00:00
#SBATCH --partition=dgx-b200
#SBATCH --gpus=1
#SBATCH --cpus-per-task=14
#SBATCH --mem=256G
module load anaconda3
source "$(conda info --base)/etc/profile.d/conda.sh"
conda activate <your-env-path>
hostname
nvidia-smi || true
python your_script.py
sbatch job.sbatch # submit
squeue -u $USER # check status
tail -f slurm-<JOBID>.out # watch output live
scancel <JOBID> # cancel if needed
Batch jobs survive disconnection.
Important: you must be on your PI’s ColdFront project allocation to submit SLURM jobs at all.