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
Short Description:

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.

Objectives - Learning Outcomes:

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.

Syllabus:

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
<< <
October 2025
> >>
Mo Tu We Th Fr Sa Su
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Today, Monday 13-10-2025
No results found for that day
Text To SpeechText To Speech Text ReadabilityText Readability Color ContrastColor Contrast
Accessibility Options