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 |