BBZ311 Parallel Programming

5 ECTS - 3-0 Duration (T+A)- 5. Semester- 3 National Credit

Information

Unit FACULTY OF SCIENCE AND LETTERS
COMPUTER SCIENCES PR.
Code BBZ311
Name Parallel Programming
Term 2025-2026 Academic Year
Semester 5. Semester
Duration (T+A) 3-0 (T-A) (17 Week)
ECTS 5 ECTS
National Credit 3 National Credit
Teaching Language Türkçe
Level Belirsiz
Type Normal
Label E Elective
Mode of study Yüz Yüze Öğretim
Catalog Information Coordinator Dr. Öğr. Üyesi Cevher ÖZDEN
Course Instructor
The current term course schedule has not been prepared yet.


Course Goal / Objective

The aim of this course is to teach students the fundamental concepts, models, and approaches of parallel programming. It is intended to provide them with the ability to develop parallel programs for shared and distributed memory systems, to effectively use popular libraries such as OpenMP and MPI, and to equip them with the skills to design parallel algorithms and perform performance analysis.

Course Content

This course aims to teach the basic concepts, models and techniques of parallel programming. Students gain knowledge and skills in parallel programming approaches, parallel algorithm design and performance analysis in shared and distributed memory systems. The course is supported by practical applications as well as theoretical knowledge.

Course Precondition

None

Resources

Michael J. Quinn, Parallel Programming in C with MPI and OpenMP, McGraw-Hill. Jesper Larsson Träff, Lectures on Parallel Computing, arXiv:2407.18795.

Notes

Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar, Introduction to Parallel Computing, Addison-Wesley. William Gropp, Ewing Lusk, Anthony Skjellum, Using MPI: Portable Parallel Programming with the Message-Passing Interface, MIT Press.


Course Learning Outcomes

Order Course Learning Outcomes
LO01 Explain the basic concepts of parallel programming.
LO02 Apply the principles of parallel algorithm design.
LO03 Develop parallel programs using OpenMP and MPI.
LO04 Analyze and optimize the performance of parallel programs.
LO05 Solve synchronization and concurrency problems in parallel programming.
LO06 Develop teamwork and technical reporting skills in parallel programming projects.


Relation with Program Learning Outcome

Order Type Program Learning Outcomes Level
PLO01 Bilgi - Kuramsal, Olgusal Gain comprehensive knowledge of fundamental concepts, algorithms, and data structures in Computer Science.
PLO02 Bilgi - Kuramsal, Olgusal Learn essential computer topics such as software development, programming languages, and database management
PLO03 Bilgi - Kuramsal, Olgusal Understand advanced computer fields like data science, artificial intelligence, and machine learning.
PLO04 Bilgi - Kuramsal, Olgusal Acquire knowledge of topics like computer networks, cybersecurity, and database design.
PLO05 Beceriler - Bilişsel, Uygulamalı Develop skills in designing, implementing, and analyzing algorithms 5
PLO06 Beceriler - Bilişsel, Uygulamalı Gain proficiency in using various programming languages effectively 5
PLO07 Beceriler - Bilişsel, Uygulamalı Learn skills in data analysis, database management, and processing large datasets.
PLO08 Beceriler - Bilişsel, Uygulamalı Acquire practical experience through working on software development projects. 5
PLO09 Yetkinlikler - Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği Strengthen teamwork and communication skills.
PLO10 Yetkinlikler - Alana Özgü Yetkinlik Foster a mindset open to technological innovations.
PLO11 Yetkinlikler - Öğrenme Yetkinliği Encourage the capacity for continuous learning and self-improvement.
PLO12 Yetkinlikler - İletişim ve Sosyal Yetkinlik Enhance the ability to solve complex problems


Week Plan

Week Topic Preparation Methods
1 Introduction to Parallel Programming; Motivation and Basic Concepts General reading on parallel computing Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
2 Parallel Computer Architectures and Classification Study on Flynn's taxonomy Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
3 Programming Shared Memory Systems: OpenMP Basics of OpenMP Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
4 Parallel Loops and Synchronization with OpenMP Practice on OpenMP directives Öğretim Yöntemleri:
Anlatım, Tartışma
5 Programming Distributed Memory Systems: MPI Basics of MPI functions Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
6 Communication and Collective Operations with MPI Study on MPI communication models Öğretim Yöntemleri:
Soru-Cevap, Anlatım, Tartışma
7 Parallel Algorithm Design and Performance Analysis Study on Amdahl's and Gustafson's laws Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
8 Mid-Term Exam Review of previous topics Ölçme Yöntemleri:
Yazılı Sınav
9 Synchronization Issues and Solutions Study on deadlock and race conditions Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
10 Parallel Sorting and Searching Algorithms Practice on parallel algorithms Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
11 Matrix Operations and Numerical Algorithms Study on parallel matrix multiplication Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
12 Performance Measurement and Optimization in Parallel Programs Usage of profiling tools Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
13 Parallel Programming Projects and Case Studies Preparation of project reports Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
14 Comparison of Parallel Programming Examples and Course-wide Review Compare programs written in different parallel models Öğretim Yöntemleri:
Gösterip Yaptırma, Anlatım
15 General Review and Final Exam Preparation Review of all topics Öğretim Yöntemleri:
Anlatım, Soru-Cevap, Tartışma
16 Term Exams Written exam Ölçme Yöntemleri:
Yazılı Sınav
17 Term Exams Written exam Ölçme Yöntemleri:
Yazılı Sınav


Student Workload - ECTS

Works Number Time (Hour) Workload (Hour)
Course Related Works
Class Time (Exam weeks are excluded) 14 3 42
Out of Class Study (Preliminary Work, Practice) 14 3 42
Assesment Related Works
Homeworks, Projects, Others 5 10 50
Mid-term Exams (Written, Oral, etc.) 1 1 1
Final Exam 1 1 1
Total Workload (Hour) 136
Total Workload / 25 (h) 5,44
ECTS 5 ECTS

Update Time: 06.05.2025 09:50