Parallel Programming
Teaching Staff: Stefanidakis Michael
Code: HY400
Course Type: Elective Course
Course Level: Undergraduate
Course Language: Greek
Semester: 8th
ECTS: 5
Teaching Units: 3
Lecture Hours: 2
Lab/Tutorial Hours: 2L
Total Hours: 4
E Class Page: https://opencourses.ionio.gr/courses/DDI185/
Curricula: Revamped Curriculum in Informatics from 2025
A laboratory course providing practical training in high-performance programming and parallel programming techniques:
-
Basic concepts of parallel computing
-
The impact of memory hierarchy on performance
-
SSE instructions
-
Programming with POSIX Threads
-
Thread programming with OpenMP
-
Introduction to CUDA programming
Operating system: Linux. Programming languages: C and C++. Special-purpose languages for GPU programming such as CUDA C/C++ are occasionally used.
Upon successful completion of the "Parallel Programming" course, undergraduate students will be able to:
-
Understand the advanced organization of a computer and the relationship between architecture and parallel processing.
-
Autonomously follow further developments in the field of parallel programming.
-
Select the appropriate form of parallel hardware according to the needs of each application.
-
Transform a parallel algorithm into the appropriate parallel program.
1st week:
Introduction to parallel processing and parallel computer architectures.
2nd week:
The memory hierarchy (main and cache memories) and its impact on performance.
3rd week:
Laboratory exercises on the impact of memory hierarchies on processing.
4th week:
Programming with SSE (Streaming SIMD Extensions) instructions.
5th week:
Laboratory exercises in programming with SSE instructions.
6th week:
Programming with POSIX Threads (pthreads).
7th week:
Programming with POSIX Threads (pthreads) (II) – synchronization methods.
8th week:
Laboratory exercises in programming with POSIX Threads.
9th week:
Thread programming with the OpenMP platform.
10th week:
Thread programming with the Intel Threading Building Blocks (TBB) platform.
11th week:
Tasks and pipelines in the Intel Threading Building Blocks (TBB) platform.
12th week:
Parallel programming on GPU – the CUDA model.
13th week:
Laboratory exercises with the CUDA model.
Back
Studies
e-mail: cs@ionio.gr