Learner Profiles
Typical Participants
Profile 1: Computational Physicist Seeking Speedup
Name: Dr. Alex Chen Background: 3 years postdoctoral research in quantum chemistry
Motivation: - Running density functional theory (DFT) simulations on molecular structures - Each simulation takes 6-8 hours - Has 50 different molecular configurations to test for publication - Current approach: 400+ hours of compute time (running serially overnight)
Experience: - Proficient in Python and some Fortran - Submits SLURM jobs but only single-core batches - No experience with parallelization - Familiar with Linux command line
Pain Point: “I have 50 molecules to test, and running them serially would take 2+ weeks. My advisor wants results by next month.”
Expected Outcome After Workshop: - Recognize that 50 independent simulations are embarrassingly parallel - Use SLURM job arrays to run 25 simulations simultaneously - Reduce total runtime from 400 hours to 16 hours (running parallel) - Understand how to monitor and manage job arrays on Sagehen
Preference: Will use command-line SSH with job arrays (prefers shell scripts)
Profile 2: Bioinformatics Pipeline Developer
Name: Jordan Martinez Background: 2nd year graduate student in computational biology
Motivation: - Processing 500 genomic sequences for a genome-wide association study - Current pipeline: 15 minutes per sequence = 125 hours total - Need to parallelize for dissertation timeline - May have to process 1000+ sequences in future
Experience: - Strong Python and R programmer - Recently learned SLURM basics - Built processing pipeline locally (runs on laptop) - No experience scaling to HPC resources
Pain Point: “My advisor told me to just ‘parallelize it,’ but I don’t know how. Do I need a completely different language?”
Expected Outcome After Workshop: - Understand that not every parallel problem needs rewriting - Adapt existing pipeline for SLURM job arrays or multiprocessing - Process 500 sequences in ~1-2 hours instead of 125 hours - Learn how to test and validate parallel pipeline produces correct results
Preference: Will use job arrays with Python scripts, may experiment with R parallel package
Profile 3: Data Scientist with Embarrassingly Parallel Workload
Name: Casey Brooks Background: Research scientist in computational sociology
Motivation: - Statistical analysis on 10,000 survey responses - Each analysis model takes 30 minutes to 2 hours - Wants to run multiple model configurations in parallel - Goal: Complete all models in 1 week instead of several months
Experience: - Excellent with R and statistical
methods - Used R’s parallel package locally on 8-core
laptop - Submits basic SLURM jobs - New to large-scale HPC
Pain Point: “I know how to parallelize on my laptop, but how do I scale to 128 cores on Sagehen HPC without rewriting everything?”
Expected Outcome After Workshop: - Understand how to
scale R’s parallel package to a full Sagehen node (128 cores) - Respect
SLURM CPU allocation using $SLURM_CPUS_PER_TASK - Run
multiple statistical models simultaneously - Monitor and optimize CPU
usage on a multi-core node
Preference: Will use shared-memory parallelism with R, may also use Python multiprocessing
Profile 4: Computer Science Student Learning HPC
Name: Morgan Lee Background: Senior undergrad, first HPC research project
Motivation: - Writing a parallel implementation of a Monte Carlo algorithm for independent study - Wants to understand parallel computing theory and practice - Plans to learn systems programming and HPC for graduate school - Need hands-on experience with real HPC infrastructure
Experience: - Comfortable with C/C++ and Python - Took algorithms course (knows Big O notation) - Just completed intro HPC workshop - No parallel programming experience
Pain Point: “I learned SLURM basics, but parallel computing is abstract. I need to see it work on real hardware.”
Expected Outcome After Workshop: - Understand three main parallelization strategies - Recognize when each strategy is appropriate - Write and debug simple MPI program on Sagehen - Measure speedup and understand Amdahl’s Law - Know where to go for deeper HPC study
Preference: Will use job arrays, Python multiprocessing, and simple MPI examples
Profile 5: Materials Science Researcher Needing Multi-Node Scaling
Name: Riley Patel Background: PhD student in computational materials science
Motivation: - Molecular dynamics (MD) simulations of crystal structures - Tightly-coupled simulations requiring inter-process communication - Problem size requires 4-8 compute nodes (512-1024 cores) - Currently running on desktop (2 cores, impractical)
Experience: - Proficient in C++ and some Python - Some MPI exposure from HPC seminar - Comfortable with compilation and debugging - Has run SLURM jobs but only single-node
Pain Point: “MPI documentation is overwhelming. Job arrays won’t work for my simulation because processes need to communicate. How do I scale to multiple nodes?”
Expected Outcome After Workshop: - Understand why MPI is necessary for their problem (vs. job arrays) - See practical MPI example on Sagehen - Know how to structure SLURM job for multi-node MPI - Understand synchronization barriers and collective operations - Know where to get advanced MPI help (documentation, support, HPC center)
Preference: Will focus on MPI + multi-node SLURM job configuration
Common Learner Characteristics
What They Know
- Basic Unix/Linux command line
- How to submit and monitor SLURM jobs
- How to write scripts or code in at least one language
- What parallelization means in general
What They Don’t Know
- How to choose between job arrays, multiprocessing, and MPI
- How to measure speedup and scaling efficiency
- How to adapt their existing code for parallelization
- Amdahl’s Law and its practical implications
- How to avoid common parallel programming bugs
Learner Diversity
By Research Field
- Physics, Chemistry, Materials Science (simulation-heavy, often MPI)
- Biology, Bioinformatics (parameter sweeps, often job arrays)
- Data Science, Statistics (statistical models, often multiprocessing)
- Computer Science (variety of approaches)
Design Philosophy
This workshop is designed for researchers who have working code and want to make it faster, not for those learning programming basics.
Key assumptions: - Participants can write and debug code - Participants have SLURM basics (from intro workshop) - Participants have real parallelization needs - Participants value practical examples over theory
The workshop emphasizes: - “How do I parallelize MY code?” not “what is parallelization?” - “Which approach is right for MY problem?” not “three approaches exist” - “Is it actually faster?” via speedup measurement - “What can go wrong?” via common pitfalls
By day’s end, participants should have either: 1. A working parallel version of their research code, OR 2. Clear understanding of what approach to use for their specific problem