Remote Development on HPCs¶

Joanna Piper Morgan

Oregon State University

Lesson Objectives¶

  • review ssh configuring between an HPC and Github
  • miniconda instilation and execution
  • brief conversation about SLURM scheduler
  • brief intro to module systems
  • remote development with VSCode!

Some Links¶

these will be included in the useful links document as well:

  • How to set up SSH keys
  • SLURM cheat sheet
  • Miniconda v Conda v Mamba
  • Module systems

ask help from your HPC admins!!!!!

WARNING¶

your mileage may vary

both your project and its requirements/limitations and the HPC you run on will determine your experience. There are no hard and fast rules

SSH Keys in Github¶

gotta have em:

cus I always forget: ssh-keygen -t ed25519

Minconda Install¶

We rarely have admin privileges on HPCs but we still need to install and run our software and its dependencies. We could build from source (often times for compiled codes using cmake) or we could use non-sudo package managers, in python this is commonly miniconda

Install insturctions

Install miniconda in your root directory:

mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh

Add miniconda to your bash/zhs scripts

~/miniconda3/bin/conda init bash

Other package managers purpose-built for HPCs are available---further reading on spack

SLURM¶

  • Launch an interactive node: srun -N 1 --pty bash or salloc
  • See the run queue: squeue <USER_NAME>
  • Cancel a Job: scancel <JOB_ID>
  • Schedule a batch script sbatch <BATCH_SCRIPT>

There are other batch schedulers (e.g., LSF) but most have a similar syntax

Module Systems¶

HPCs often have wayyyyyyyy more installed code than you need

modules simplify this by altering your path to configured packages

often this is for compilers (e.g., clang, gcc, cuda)

Remote work with VSCode¶

while vim and emacs exist---why drive a chevy when you can drive a cadillac?

support for any file under the sun, scp/ftp abilities, file browsing, multi-terminal functionalities, etc. etc.

note: is not supported in IBM POWER9 systems