CEN463 Parallel Programming

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

Information

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
Mode of study Yüz Yüze Öğretim
Catalog Information Coordinator Prof. Dr. ZEKERİYA TÜFEKCİ
Course Instructor
1


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 It 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. 1
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. 2
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. 2
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

Update Time: 11.05.2024 05:53