Skip to content

What is HPC Scheduling?

Exercises

  1. Identify your workload type

Look at the workload types discussed in this module (batch, interactive, parallel, GPU-accelerated). Think about the computational work you do most often. Which category does it fall into? Would a single job cover it, or would you need multiple jobs? Write down your workload type and a one-sentence description.

Hint / Solution There is no single right answer. Examples: - "My work is **batch** -- I run BLAST searches against a protein database that take 2-8 hours each." - "My work is **GPU-accelerated batch** -- I run CryoSPARC reconstruction jobs that need 1-2 GPUs for 12-24 hours." - "My work is a mix of **interactive** (testing parameters in a Jupyter session) and **batch** (running production simulations overnight)."
  1. Describe the contract

Write out the "resource contract" for your typical job. What would you tell the scheduler you need? Consider: How many CPUs? How much memory? How long does it usually run? Does it need a GPU? Does it need access to specific software or data?

Hint / Solution A good resource contract might look like: - **CPUs:** 4 cores (my tool is multithreaded but not massively parallel) - **Memory:** 16 GB (my datasets are ~10 GB and the tool needs overhead) - **Time:** 6 hours (most runs finish in 3-4 hours, but some take longer) - **GPU:** None - **Software:** RELION 4.0, loaded via environment modules - **Data:** Input files on `/scratch`, output to `/scratch/results` This is exactly the kind of information you will translate into Slurm directives in later modules.

References