|
|
Main menu for Browse IS/STAG
Course info
KIV / PPR
:
Course description
Department/Unit / Abbreviation
|
KIV
/
PPR
|
Academic Year
|
2023/2024
|
Academic Year
|
2023/2024
|
Title
|
Parallel Programming
|
Form of course completion
|
Exam
|
Form of course completion
|
Exam
|
Accredited / Credits
|
Yes,
6
Cred.
|
Type of completion
|
Combined
|
Type of completion
|
Combined
|
Time requirements
|
Lecture
4
[Hours/Week]
Tutorial
1
[Hours/Week]
|
Course credit prior to examination
|
Yes
|
Course credit prior to examination
|
Yes
|
Automatic acceptance of credit before examination
|
No
|
Included in study average
|
YES
|
Language of instruction
|
Czech, English
|
Occ/max
|
|
|
|
Automatic acceptance of credit before examination
|
No
|
Summer semester
|
0 / -
|
0 / -
|
0 / -
|
Included in study average
|
YES
|
Winter semester
|
15 / -
|
4 / -
|
0 / 10
|
Repeated registration
|
NO
|
Repeated registration
|
NO
|
Timetable
|
Yes
|
Semester taught
|
Winter semester
|
Semester taught
|
Winter semester
|
Minimum (B + C) students
|
10
|
Optional course |
Yes
|
Optional course
|
Yes
|
Language of instruction
|
Czech, English
|
Internship duration
|
0
|
No. of hours of on-premise lessons |
|
Evaluation scale |
1|2|3|4 |
Periodicity |
každý rok
|
Evaluation scale for credit before examination |
S|N |
Periodicita upřesnění |
|
Fundamental theoretical course |
Yes
|
Fundamental course |
No
|
Fundamental theoretical course |
Yes
|
Evaluation scale |
1|2|3|4 |
Evaluation scale for credit before examination |
S|N |
Substituted course
|
None
|
Preclusive courses
|
KIV/PPR-E
|
Prerequisite courses
|
N/A
|
Informally recommended courses
|
KIV/OS and KIV/PC and KIV/CPP
|
Courses depending on this Course
|
KIV/DISZ, KIV/PES, KIV/RSSZ, KIV/SDSZ, KIV/SZD, KMA/PNM
|
Histogram of students' grades over the years:
Graphic PNG
,
XLS
|
Course objectives:
|
To students, in theory and practice to closely introduce methods of parallel programming for systems with shared and distributed memory and real-time systems. To cover parallel applications, means for their development and runtime.
|
Requirements on student
|
Credit will be given for semestral work, midterm, and final
presentation. Regular deadline: the semestral work has to be deliverd
two weeks before the final presentation. Hard-deadline: the semestral
work has to be delivered until 31.1. of the present academic year.
|
Content
|
1. Definitions, architectures, taxonomy, markers
2. Forms of interaction and sharing, granularity, computing models, temporal logic
3. Instruction-level paralelism
4. Threads, atomic synchronization, spurious wake-up, escape analysis, Rendez-Vous
5. C++14 multihreading
6. Intel Threading Building Blocks - task stealing scheduler
7. GPGPU - OpenCL, C++AMP, CUDA
8. OS API - WinAPI, POSIX
9. Distributed computing - topology, wormhole switching, computing models, Lamport
10. MPI - communicator, data types, persistent communication, group and reduction operations, files
11. Advanced techniques of distributed computing
12. Big Data & Cloud Computing
|
Activities
|
|
Fields of study
|
|
Guarantors and lecturers
|
|
Literature
|
-
Basic:
Peter Sanders, Kurt Mehlhorn, Martin Dietzfelbinger. Sequential and Parallel Algorithms and Data Structures: The Basic Toolbox. 2019. ISBN 978-3030252083.
-
Extending:
Björn Andrist, Viktor Sehr. C++ High Performance: Master the art of optimizing the functioning of your C++ code. 2020. ISBN 978-1839216541.
-
Extending:
Dahlia Malkhi. Concurrency: The Works of Leslie Lamport. 2019. ISBN 978-1450372701.
-
Extending:
Ali Sunyaev. Internet Computing: Principles of Distributed Systems and Emerging Internet-Based Technologies. 2020. ISBN 978-3030349561.
-
Recommended:
James Reinders, Ben Ashbaugh, James Brodman, Michael Kinsner, John Pennycook, Xinmin Tian. Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL. 2020. ISBN 978-1484255735.
-
Recommended:
Rob H. Bisseling. Parallel Scientific Computation: A Structured Approach Using BSP. 2020. ISBN 978-0198788355.
-
On-line library catalogues
|
Time requirements
|
All forms of study
|
Activities
|
Time requirements for activity [h]
|
Graduate study programme term essay (40-50)
|
52
|
Preparation for an examination (30-60)
|
104
|
Total
|
156
|
|
Prerequisites
|
Knowledge - students are expected to possess the following knowledge before the course commences to finish it successfully: |
aplikovat základní znalosti počítačových sítí |
aplikovat znalosti základů operačních systémů |
používat funkce operačního systému pro práci s vlákny |
Skills - students are expected to possess the following skills before the course commences to finish it successfully: |
nainstalovat a použít knihovnu jiného vývojáře |
programovat v pointerovém jazyce, např. C či C++ |
Competences - students are expected to possess the following competences before the course commences to finish it successfully: |
N/A |
|
Learning outcomes
|
Knowledge - knowledge resulting from the course: |
orientovat v technologiích pro paralelní výpočty |
popsat možnosti paralelizace kódu pro SMP |
popsat možnosti paralelizace pro CPU+GPGPU |
popsat možnosti paralelizace pro MPI |
popsat principy a vlastnosti paralelních a distribuovaných systémů, včetně plánování, koordinace, synchronizace a komunikace procesů, a způsoby komunikace běžnými síťovými protokoly |
Skills - skills resulting from the course: |
rozhodnout se, jakou technologii použít pro vývoj paralelního programu |
vytvořit paralelní program pro alespoň dva ze tří následujícíh scénářů: SMP, CPU+GPGPU a MPI |
Competences - competences resulting from the course: |
N/A |
|
Assessment methods
|
Knowledge - knowledge achieved by taking this course are verified by the following means: |
Written exam |
Seminar work |
Combined exam |
Group presentation at a seminar |
Skills - skills achieved by taking this course are verified by the following means: |
Seminar work |
Group presentation at a seminar |
Individual presentation at a seminar |
Combined exam |
Competences - competence achieved by taking this course are verified by the following means: |
Written exam |
Combined exam |
|
Teaching methods
|
Knowledge - the following training methods are used to achieve the required knowledge: |
Lecture supplemented with a discussion |
Self-study of literature |
Task-based study method |
Skills - the following training methods are used to achieve the required skills: |
Students' portfolio |
Individual study |
Competences - the following training methods are used to achieve the required competences: |
Lecture supplemented with a discussion |
|
|
|
|