Skip to content

Overview

Goals

  • What is parallel programming?
  • Why parallel programming?
  • Performance is important
  • How to parallelize a program?
  • Tools
  • Principles and best practices
  • Strategy for scientific software development

Background knowledge

  • The working of a modern processor
  • CPU architecture and hierarchical memory architecture
  • Accelerators (GPU), increasingly important topic, but we cannot treat everything in this course.
  • The architecture of a supercomputer
  • Nodes and cores, NUMA domains
  • Interconnect