Skill: Parallel programming
Applying core parallel software design concepts, methodologies and algorithms for writing parallel code.
Related skills
Learning resources
- Accelerator and GPU programming
- Introduction to Parallel Computing
- Introduction to parallel programming by the Carpentries - The Carpentries
- Parallel and High Performance Computing
- Parallel scaling guide
- The Art of Multiprocessor Programming
Tools
Languages
Methodologies
- Algorithm scalability design
- Atomic operations
- Communication optimisation
- Load balancing
- Locks
- Memory hierarchies
- Memory hierarchy and data locality optimisation
- Message Passing Interface (MPI)
- Message Passing Parallelism (MPP)
- Multi-processing
- Multi-threading
- OpenACC
- OpenMP
- Parallel (data and task) decomposition
- POSIX threads
- Semaphores
- Shared Memory Programming
- Signals
- Single Instruction Multiple Data (SIMD)
- Synchronisation and concurrency control