Parallel Programming
Module ID
Ε503
Semester
5 (Ε)
Hours/Week - ECTS
4 – 5
Ilias Savvas
Professor
Learning Outcomes
Upon successful completion of the course, the student will be able:
- to understand the concept of parallel programming and its technologies,
- to design and implement complex programs using the MPI, OpenMP, and CUDA platforms with C/Python,
- to use parallel programming support libraries.
Indicative Module Content
- Classification of parallel systems
- Moore’s law. Amdahl’s law. DAG and Gant chart.
- Flynn’s taxonomy.
- The complexity of parallel algorithms and programs (acceleration, scaling)
- Parallel programming in distributed memory systems (using Message Passing Interface – MPI)
- Parallel programming in shared memory systems (using OpenMP – Open Multi-Processing)
- Hybrid systems and computational clusters
- Multi-core programming on the Graphical Processing Unit – GPU (using CUDA – Compute Unified Device Architecture)