Information
| Unit | FACULTY OF ENGINEERING |
| COMPUTER ENGINEERING PR. (ENGLISH) | |
| Code | CEN463 |
| Name | Parallel Programming |
| Term | 2024-2025 Academic Year |
| Semester | 7. Semester |
| Duration (T+A) | 3-0 (T-A) (17 Week) |
| ECTS | 6 ECTS |
| National Credit | 3 National Credit |
| Teaching Language | İngilizce |
| Level | Lisans Dersi |
| Type | Normal |
| Label | E Elective |
| Mode of study | Yüz Yüze Öğretim |
| Catalog Information Coordinator | Prof. Dr. ZEKERİYA TÜFEKCİ |
| Course Instructor |
The current term course schedule has not been prepared yet.
|
Course Goal / Objective
Learning parallel programming techniques
Course Content
Parallel programming techniques
Course Precondition
no prerequisites
Resources
Multicore and GPU Programming: An Integrated Approach Gerassimos Barlas
Notes
Introduction to Parallel Programming A. Grama, A. Gupta, G. Karypis, V. Kumar
Course Learning Outcomes
| Order | Course Learning Outcomes |
|---|---|
| LO01 | Can parallelize a serially written C++ program to run on multi-core computers using open MP. |
| LO02 | Can parallelize a serially written C++ program to run on multiple computers using open MPI. |
| LO03 | Can parallelize a serially written C++ program to run on the graphics card (GPU). |
| LO04 | Can estimate the performance limit of the parallel program. |
Relation with Program Learning Outcome
| Order | Type | Program Learning Outcomes | Level |
|---|---|---|---|
| PLO01 | Bilgi - Kuramsal, Olgusal | Adequate knowledge of mathematics, science and related engineering disciplines; ability to use theoretical and applied knowledge in these fields in solving complex engineering problems. | |
| PLO02 | Bilgi - Kuramsal, Olgusal | Ability to identify, formulate and solve complex engineering problems; ability to select and apply appropriate analysis and modeling methods for this purpose. | |
| PLO03 | Bilgi - Kuramsal, Olgusal | Ability to design a complex system, process, device or product to meet specific requirements under realistic constraints and conditions; ability to apply modern design methods for this purpose. | 4 |
| PLO04 | Bilgi - Kuramsal, Olgusal | Ability to select and use modern techniques and tools necessary for the analysis and solution of complex problems encountered in engineering practice; ability to use information technologies effectively. | 3 |
| PLO05 | Bilgi - Kuramsal, Olgusal | Ability to design and conduct experiments, collect data, analyze and interpret results to investigate complex engineering problems or discipline-specific research topics. | 5 |
| PLO06 | Bilgi - Kuramsal, Olgusal | Ability to work effectively in interdisciplinary and multidisciplinary teams; individual working skills. | |
| PLO07 | Bilgi - Kuramsal, Olgusal | Ability to communicate effectively verbally and in writing; knowledge of at least one foreign language; ability to write effective reports and understand written reports, prepare design and production reports, make effective presentations, and give and receive clear and understandable instructions. | 3 |
| PLO08 | Bilgi - Kuramsal, Olgusal | Awareness of the necessity of lifelong learning; ability to access information, follow developments in science and technology, and constantly renew oneself. | 3 |
| PLO09 | Bilgi - Kuramsal, Olgusal | Knowledge of ethical principles, professional and ethical responsibility, and standards used in engineering practice. | |
| PLO10 | Bilgi - Kuramsal, Olgusal | Knowledge of business practices such as project management, risk management and change management; awareness of entrepreneurship and innovation; knowledge of sustainable development. | 3 |
| PLO11 | Bilgi - Kuramsal, Olgusal | Knowledge of the effects of engineering practices on health, environment and safety in universal and social dimensions and the problems of the age reflected in the field of engineering; awareness of the legal consequences of engineering solutions. | 3 |
Week Plan
| Week | Topic | Preparation | Methods |
|---|---|---|---|
| 1 | Shared Memory systems | Reading the lecture notes | Öğretim Yöntemleri: Anlatım |
| 2 | OpenMP parallel loop construct, Sharing of variables | Reading the lecture notes | Öğretim Yöntemleri: Anlatım |
| 3 | Data Dependencies , Loop schedules | Reading the lecture notes | Öğretim Yöntemleri: Anlatım |
| 4 | Synchronization, Critical sections | Reading the lecture notes | Öğretim Yöntemleri: Anlatım |
| 5 | Distributed Memory Programming (MPI) | Reading the lecture notes | Öğretim Yöntemleri: Anlatım |
| 6 | MPI basics, point-to-point communication, collective communication. | Reading the lecture notes | Öğretim Yöntemleri: Anlatım |
| 7 | Synchronous/asynchronous send/recv, algorithms for gather, scatter, broadcast, reduce. | Reading the lecture notes | Öğretim Yöntemleri: Anlatım |
| 8 | midterm | Ölçme Yöntemleri: Yazılı Sınav |
|
| 9 | Parallel communication | Reading the lecture notes | Öğretim Yöntemleri: Anlatım |
| 10 | Performance | Reading the lecture notes | Öğretim Yöntemleri: Anlatım |
| 11 | Designing parallel codes | Reading the lecture notes | Öğretim Yöntemleri: Anlatım |
| 12 | Parallel I/O | Reading the lecture notes | Öğretim Yöntemleri: Anlatım |
| 13 | Job scheduling and additional topics. | Reading the lecture notes | Öğretim Yöntemleri: Anlatım |
| 14 | GPU programming | Reading the lecture notes | Öğretim Yöntemleri: Anlatım |
| 15 | GPU programming using OpenACC in C/C++ | Reading the lecture notes | Öğretim Yöntemleri: Anlatım |
| 16 | Final Exam | Ölçme Yöntemleri: Yazılı Sınav |
|
| 17 | Final 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 | 5 | 70 |
| Assesment Related Works | |||
| Homeworks, Projects, Others | 0 | 0 | 0 |
| Mid-term Exams (Written, Oral, etc.) | 1 | 15 | 15 |
| Final Exam | 1 | 30 | 30 |
| Total Workload (Hour) | 157 | ||
| Total Workload / 25 (h) | 6,28 | ||
| ECTS | 6 ECTS | ||