This lesson is still being designed and assembled (Pre-Alpha version)

Introduction to High Performance Computing for astronomical software development: Glossary

Key Points

Setting the Scene
  • Keypoint 1

  • Keypoint 2

Section 1: HPC basics
  • Keypoint 1

HPC Intro
  • Keypoint 1

Bura access
  • Keypoint 1

Command line basics
  • Basic CLI skills enable efficient navigation and manipulation of data repositories

  • Use man to explore arguments for command-line tools

HPC facilities
  • Keypoint 1

Section 2: HPC Bura
  • Keypoint 1

Slurm
  • Keypoint 1

Intro for computing nodes and resources
  • Keypoint 1

Intro code examples
  • Serial code is limited to a single thread of execution, while parallel code uses multiple cores or nodes.

  • OpenMP and MPI are popular for parallel CPU programming; CUDA is used for GPU programming.

  • High-level libraries like Numba and CuPy make GPU acceleration accessible from Python.

Resource optimization
  • Different computational models (sequential, parallel, GPU) significantly impact runtime and efficiency.

  • Sequential CPU execution is simple but inefficient for large parameter spaces.

  • Parallel CPU (e.g., MPI or OpenMP) reduces runtime by distributing tasks but is limited by CPU core counts and communication overhead.

  • GPU computing can drastically accelerate tasks with massively parallel workloads like grid-based simulations.

  • Choosing the right computational model depends on the problem structure, resource availability, and cost-efficiency.

  • Effective Slurm job scripts should match the workload to the hardware: CPUs for serial/parallel, GPUs for highly parallelizable tasks.

  • Monitoring tools (like nvidia-smi, seff, top) help validate whether the resource request matches the actual usage.

  • Optimizing resource usage minimizes wait times in shared environments and improves overall throughput.

Wrap-up
  • Keypoint 1

Glossary