cluster-instructions
Detect which HPC cluster you are on and load the correct job submission instructions. Use when the user asks to submit, run, or schedule a job, or when you need to know which cluster environment you a
SKILL.mdskills/cluster-instructions/SKILL.md
GitHubCluster Instructions
You are on an HPC cluster. Before submitting any jobs or running heavy commands, detect which cluster you are on and follow the correct instructions.
IMPORTANT: Never run Python, heavy CPU, or GPU commands directly on a login node. Always submit via the scheduler unless you have confirmed you are on a compute node.
Step 1: Detect the cluster
Run these checks in order:
# Check host and working directory path
hostname
hostname -f 2>/dev/null || true
pwd
# Check available scheduler
if command -v sbatch >/dev/null 2>&1; then
echo "SLURM"
elif command -v qsub >/dev/null 2>&1 && command -v qconf >/dev/null 2>&1; then
echo "SGE"
elif command -v qsub >/dev/null 2>&1; then
echo "PBS"
else
echo "UNKNOWN"
fi
| Path pattern | Cluster | Scheduler | Instructions |
|---|---|---|---|
/rds/general/user/<user>/home/ |
Imperial CX3 | PBS Pro | cx3.md in this skill |
/gpfs/home/<user> |
Imperial HX1 | PBS Pro | Use CX3 instructions (cx3.md) |
/lustre/home/<user> + sbatch available + Young hostname |
UCL MMM Young NG (ssh mmm) |
SLURM | mmm-slurm.md in this skill |
/lustre/home/<user> + qsub/qconf available + Young hostname |
UCL MMM old Young (ssh mmm-old) |
SGE / Grid Engine | mmm-sge.md in this skill |
/home/<project>/<user>.<project>/ + /projects/<project>/ exists |
Isambard AI | SLURM | isambard.md in this skill |
softnanolab-HP-Z8-G4-Workstation / softnanolab-campus |
SoftNano campus workstation | SLURM may exist, but not the HPC cluster target | Do not submit MMM/HPC work here; SSH onward to mmm, mmm-old, hx1, or leprotein |
If none match, ask the user which cluster they are on.
Detection order matters. A plain "SLURM exists" check is not enough: MMM Young NG and Isambard both expose SLURM, while the SoftNano campus workstation may also expose SLURM commands without being the intended cluster target. Use host/path first, then the scheduler.
Step 2: Check if you are on a login node
- CX3: Run
hostname. If it containslogin, you are on a login node — do not run compute commands directly. If it does NOT containlogin, you are on a compute node and can run short Python commands directly. - MMM Young NG (
ssh mmm): Hostnames likelogin*.young.ucl.ac.ukare login nodes. Usesbatchorsrunvia the MMM SLURM instructions. - MMM old Young (
ssh mmm-old): Hostnames likelogin*.ib.young.ucl.ac.ukare login nodes. Useqsub; this is SGE, not PBS. - Isambard: Assume login node unless inside an
srunsession or a batch job. - SoftNano campus: This is a workstation/gateway. It may have SLURM commands, but it is not the MMM/HPC cluster target. Do not run or submit HPC workloads there unless the user explicitly asks for campus-local work; SSH to the actual cluster first.
Step 3: Load cluster-specific instructions
Read the appropriate file from this skill's directory:
- CX3 / HX1: Read
cx3.md— covers PBS Pro queues, job templates, key patterns, common commands, and storage paths. - MMM Young NG: Read
mmm-slurm.md— covers SLURM partitions/QoS, GPU A100 requests, modules, and common commands. - MMM old Young: Read
mmm-sge.md— covers SGE queues, project/account flags, GPU requests, modules, and common commands. - Isambard: Read
isambard.md— covers SLURM job templates, GPU allocation (Grace Hopper Superchips), DDP setup, and common commands.
Follow those instructions for all job submission, script creation, and resource allocation decisions.
Step 4: Submit or run the command
If $ARGUMENTS contains a command or script to run:
- Determine if it needs a batch job (long-running, GPU, heavy CPU) or can run directly (quick debugging, <5 min).
- For batch jobs: create a job script using the templates from the cluster-specific instructions, then submit it.
- For quick commands on a compute node: run directly.
- For quick commands on a login node:
- CX3: Use
qsub -Ifor an interactive session. - MMM Young NG: Use
srunwith a partition/QoS frommmm-slurm.md. - MMM old Young: Use
qsubwith flags frommmm-sge.md; do not run tests directly on the login node. - Isambard: Use
srunfor an interactive session.
- CX3: Use
If no arguments are provided, just report which cluster and node type you detected.