Learner Profiles
Who Takes This Workshop?
This workshop serves researchers across Pomona College with diverse backgrounds, goals, and computing needs. Here are three typical learner profiles to guide workshop design:
Profile 1: Sam - Chemistry Graduate Student
Background: Sam is in their 3rd year of a chemistry PhD, working on computational drug discovery. They have basic Linux experience from a undergraduate “computing in chemistry” course but have never used HPC.
Motivation: “My molecular dynamics simulations take weeks on my laptop. My advisor says Sagehen HPC can run them in days. I need to understand how to submit jobs there.”
What Sam needs: - To get basic MD simulations running without deep understanding of SLURM - Confidence that their code will run correctly - A way to check if jobs are progressing - Guidance on appropriate resource requests for MD (CPUs vs GPUs vs time)
What Sam will learn: - ✓ How to write batch scripts with correct SLURM directives - ✓ How to request appropriate resources for MD simulations - ✓ How to monitor job progress and check efficiency - ✓ Where to find fast storage for I/O-heavy simulations - Sam might skip: Deep GPU optimization (MD runs on CPU), job arrays (runs one large job at a time)
Sam’s challenges: - Remembering SLURM syntax (solved
by bookmarking the reference card) - Estimating resource needs (solved
by iterating with seff) - Debugging when code fails on a
compute node (solved by understanding output files)
Sam’s success criteria: - “I can submit a batch job
that runs my GROMACS simulation” - “I understand what seff
tells me about efficiency” - “My simulations run in 2-3 days instead of
weeks”
Profile 2: Alex - Neuroscience Undergraduate Researcher
Background: Alex is a senior doing an honors thesis on machine learning applied to neural imaging. They’ve taken programming courses (Python) and used Jupyter notebooks for data analysis, but never used a terminal much.
Motivation: “I need to train a neural network on 10,000 brain scans. My laptop takes forever. A mentor told me to try Sagehen. I want to learn enough to not slow down my research.”
What Alex needs: - Step-by-step guidance (might not be comfortable with Linux yet) - Clear examples they can copy and modify - Understanding of GPU usage (their models are deep learning) - Patience with the learning curve
What Alex will learn: - ✓ How to connect to Sagehen and navigate the file system - ✓ How to write Python batch scripts with module loading - ✓ How to request GPUs and verify they’re being used - ✓ How to diagnose common errors (out of memory, timeout) - ✓ How to iteratively improve resource estimates
Alex might skip: - Job arrays (they’ll run one training job at a time, not parameter sweeps) - Scratch storage optimization (they’ll learn this when hitting I/O bottlenecks)
Alex’s challenges: - Unfamiliar with command line;
needs extra patience with Episode 1 - Will make mistakes in batch
scripts; needs encouragement to read error messages - Might request too
many resources initially; needs to see seff results
Alex’s success criteria: - “I can train my model on a GPU without my laptop overheating” - “My job finishes in under an hour instead of 4 hours on my laptop” - “I understand what the error messages mean and can fix them”
Profile 3: Morgan - Economics Faculty Researcher
Background: Morgan is an associate professor of economics using statistical computing for large-scale data analysis. They have experience with R and STATA on their desktop but have never used any HPC system.
Motivation: “I’m analyzing 50 years of economic data with complex models. My department just got Sagehen access. I want to scale up my analysis without leaving my workflow.”
What Morgan needs: - Integration with existing R scripts (minimal rewriting) - Understanding of parallel computing on CPUs - Large memory requirements (data in RAM) - Batch job submission without interactive development
What Morgan will learn: - ✓ How to convert R scripts to batch jobs with minimal changes - ✓ How to request large amounts of CPU and memory - ✓ How to process the results back on their desktop - ✓ How to manage multiple related jobs (perhaps related parameter sweeps) - ✓ When to use scratch storage for large intermediate files
Morgan might skip: - GPU training (their work is CPU-based statistics) - Interactive jobs (they prefer writing complete scripts) - Module loading details (they’ve already installed R locally)
Morgan’s challenges: - Expects SLURM to work like their desktop (different paradigm) - May write overly-complex resource requests initially - Might forget about data cleanup and hit storage quotas
Morgan’s success criteria: - “My analysis that took 2 weeks now runs in 2 hours using 64 cores” - “I understand resource requirements well enough to not waste compute time” - “I can manage 20+ jobs efficiently without overwhelming the cluster”
Differentiated Instruction Based on Profiles
For Sam (Chemistry Student)
Emphasize: - Episode 4: Batch jobs (their primary workflow) - Episode 5: Monitoring and efficiency (key for long simulations) - Episode 7: Scratch storage (important for I/O)
Example challenge: “Write a batch script for GROMACS with –time=24:00:00”
Extension: “Run a job array with different temperatures or parameters”
For Alex (Neuroscience Student)
Emphasize: - Episode 3: Interactive jobs (for development) - Episode 6: GPU jobs (critical for their ML work) - Episode 5: Troubleshooting common errors
Example challenge: “Write a PyTorch training script, convert to batch job, monitor GPU with nvidia-smi”
Extension: “Implement checkpoint saving so you can resume long training runs”
For Morgan (Economics Professor)
Emphasize: - Episode 2: Resource planning (crucial for large data) - Episode 4: Batch jobs with email notifications - Episode 7: Advanced tips (job arrays, efficiency tuning)
Example challenge: “Estimate resources for analyzing your 50GB dataset, create batch script with multiple analysis steps”
Extension: “Design a job array to test 10 different model specifications”
Common Struggles and How We Address Them
Struggle: “SLURM Syntax is Hard”
Solution for all profiles: - Provide batch script templates - Emphasize the reference card - Show “common patterns” section - Encourage copying and modifying examples
Struggle: “I Don’t Know How Much to Request”
Solution: - Teach estimation heuristics (2-4x input
file size for memory, etc.) - Show seff output - Normalize
iterative refinement - Provide examples for different research types
Adjusting Pacing by Learner Type
| Learner Type | Time Spent | Episodes to Emphasize | Episodes to Skim |
|---|---|---|---|
| Sam (Domain expert, HPC novice) | 2 hours | 1-5, 7 | 6 (briefly) |
| Alex (Novice everywhere) | 3-4 hours | 1-6 with extra help | Extend with extra challenges |
| Morgan (Experienced researcher) | 1.5 hours | 2, 4-5, 7 | 1-3 (quickly) |
Sample Workshop Dialogues
If You Spot Sam Looking Confused
Instructor: “I see you’re looking at the time format. It’s HH:MM:SS, so 01:30:00 is one hour and thirty minutes. Think of it like a clock.”
Sam: “Oh, so 24:00:00 is a full day?”
Instructor: “Exactly! And on the amd partition, you can go up to 30-00:00:00, which is 30 days. Try it in your script.”
If You Spot Alex Frustrated with an Error
Instructor: “Great! Your job failed, which is normal! Let’s look at the error. What does the output file say?”
Alex: “[reads] ‘Killed… out of memory’”
Instructor: “Perfect diagnosis. That means your
program tried to use more RAM than you requested. Look at
seff to see how much you actually used, then request a bit
more. This is how we learn!”
If You Spot Morgan Impatient to Optimize
Instructor: “You’re thinking about job arrays and parallel processing. Great! For now, let’s get one job running correctly. Then we’ll optimize. In HPC, correctness comes before speed.”
Morgan: “Fair point. I’m used to tweaking code locally; this feels different.”
Instructor: “Exactly. Here, we plan upfront, then let the cluster do the work. You’ll see the benefits when your 50GB dataset finishes in hours instead of days.”
Learning Outcomes by Profile
Sam Learns…
- “I can estimate resources for molecular dynamics and avoid overrequesting”
- “When a job fails, I know how to read the error message and fix it”
- “I can achieve 10x speedup by properly using Sagehen”
Customizing This Workshop for Your Audience
When you teach this workshop:
- Ask learners to introduce themselves at the start
- Identify which profile(s) match your audience
- Emphasize the relevant episodes and examples
- Adjust challenge complexity (easy for beginners, hard for advanced)
- Provide post-workshop office hours for one-on-one help
Remember: All three profiles (and others!) are valuable and welcome. The goal is to help them succeed with their research on Sagehen.
For More Details
- See Instructor Notes for teaching strategy
- See individual episodes for specific learning objectives
- See Setup Guide for account and access issues