Section: The Course | Developing Efficient Parallel Code | DiRAC Training

    • Teaching: 45 min
      Exercises: 30 min
      Questions
      • What is a scheduler and why does a cluster need one?
      • How do I launch a program to run on a compute node in the cluster?
      • How do I capture the output of a program that is run on a node in the cluster?
       
      Objectives
      • Submit a simple script to the cluster using Slurm.
      • Monitor the execution of jobs using command line tools.
      • Describe the basic states through which a submitted job progresses to completion or failure.
      • Inspect the output and error files of your jobs.
      • Cancel a running job.
    • page icon
      Running example code on a cluster Page
      Teaching: 30 min
      Exercises: 20 min
      Questions
      • How can we get our (or others’) code running on an HPC resource?
       
      Objectives
      • Explain what MPI is used for.
      • Load and use software package modules.
      • Compile and run an MPI program.
      • Build and submit a batch submission script for an MPI program.
      • Describe what happens if we specify too few resources in a job script.
      Not available unless: You belong to any group
    • page icon
      Understanding code scalability Page
      Teaching: 10 min
      Exercises: 0 min
      Questions
      • What is code scalability?
      • Why is code scalability important?
      • How can I measure how long code takes to run?
       
      Objectives
      • Describe why code scalability is important when using HPC resources.
      • Explain the difference between wall time and CPU time.
      • Describe the differences between strong and weak scaling.
      • Summarise the dangers of premature optimisation.
      Not available unless: You belong to any group
    • page icon
      Scalability profiling Page
      Teaching: 45 min
      Exercises: 20 min
      Questions
      • How scalable is a particular piece of code?
      • How can I generate evidence for a code’s scalability?
      • What does good and bad scalability look like?
       
      Objectives
      • Explain how Amdahl’s Law can help us understand the scalability of code.
      • Use Amdahl’s Law to predict the theoretical maximum speedup on some example code when using multiple processors.
      • Understand strong and weak scaling graphs for some example code.
      • Describe the graphing characteristics of good and bad scalability.
      Not available unless: You belong to any group