Course Details
Course Code (English)
*
Semester
*
Title (English)
*
Lecture Hours (Weekly)
ECTS Credits
*
Course Type (English)
Prerequisites (English)
Programming Ι (ΥΠ02) Programming II (ΥΠ05) Discrete Mathematics (ΥΠ09) Computational Mathematics (ΜΥ01) Numerical Analysis (MY03)
Course URL (e.g., on e-class)
Learning Outcomes (English)
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.
General Competencies (English)
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
Course Content (English)
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
Use of ICT (English)
Programming environments: MPI, OpenMP, POSIX Threads, CUDA, OpenACC Use of GPU-enabled systems (where available) Performance analysis tools (e.g., nvprof, gprof, perf) Electronic communication with students Use of digital presentations Learning process support through the electronic platform e-class
Is it elective?
Άγνωστο
Ναι
Όχι
Load within semester (Hours)
Lecture Hours
Lab Hours
Independent Study
*
Project Work
*
Lab Report
*