Learning Outcomes:
- Understand parallel programming paradigm and orient yourself in parallel computing technologies
- Write and experiment with parallel programs using MPI, OpenMP and Pthreads, and MPI+OpenMP
- Use parallel libraries
Indicative Module Content:
-Vector and superscalar processors: architecture and programming model, optimizing compilers (dependency analysis and code generation), array libraries (BLAS), parallel languages (Fortran 90).
- Shared-memory multi-processors and multicore CPUs: architecture and programming models, optimizing compilers, thread libraries (Pthreads), parallel languages (OpenMP).
- Distributed-memory multi-processors: architecture and programming model, performance models, message-passing libraries (MPI), parallel languages (HPF).
- Hybrid parallel programming for clusters of mutlicore CPUs with MPI+OpenMP.