Modern Parallel Architectures and High-Performance Programming
General
Code: ΥΠ26
Language: Greek with translation in English
Delivery: Face-to-face
Prerequisites:
Programming Ι (ΥΠ02)
Programming II (ΥΠ05)
Discrete Mathematics (ΥΠ09)
Computational Mathematics (ΜΥ01)
Numerical Analysis (MY03)
Workload
- Lectures: 39.0 hours
- Lab: 0.0 hours
- Study: 61.0 hours
- Project: 12.5 hours
Course Content
Introduction to Parallel Computing – Models and Concepts
Amdahl’s and Gustafson’s Laws
Flynn’s Taxonomy – SISD, SIMD, MISD, MIMD
Network Topologies and Interconnection Architectures – Mesh, Torus, Fat Tree
Shared and Distributed Memory Architectures
Message-Passing and Heterogeneous Architectures
Cache Coherence and Memory Models
Non-determinism, Race Conditions, Critical Sections
Parallel Programming with:
- MPI (Message Passing Interface)
- OpenMP and POSIX Threads
- CUDA, OpenACC, GPU Kernels
Instruction-Level Parallelism (ILP), Pipelining, SMT
Introduction to Roofline Model and Performance Benchmarking (e.g., LINPACK)
Hybrid Systems (e.g., MPI + OpenMP / CUDA)
HPC Applications: Scientific Computing, Climate Modeling, Big Data
Learning Outcomes
The aim of the course is to introduce students to modern parallel processing architectures and high-performance programming techniques. Students study key models and principles of parallel execution, such as Amdahl’s Law, Flynn’s taxonomy, and performance modeling (e.g., Roofline model), while examining computing architectures such as multicore CPUs, GPUs, and heterogeneous systems.
During the course, students understand concepts like non-determinism, race conditions, critical sections, synchronization, and mutual exclusion. Parallel programming environments such as MPI, OpenMP, POSIX Threads, CUDA, and OpenACC are introduced and applied, including hybrid techniques (e.g., MPI+CUDA).
The lab component includes real-world application scenarios, such as parallel solutions of linear systems, processing of large datasets, and performance optimization on GPU systems.
Skills
Independent work
Team work
Search, analysis and synthesis of data and information with the use of the assorted technologies
Decision Making
Adaptation in new conditions
