CEN463 Parallel Programming

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

Information

Code CEN463
Name Parallel Programming
Term 2023-2024 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
1 2
Prof. Dr. ZEKERİYA TÜFEKCİ (A Group) (Ins. in Charge)


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 Has capability in the fields of mathematics, science and computer that form the foundations of engineering 1
PLO02 Bilgi - Kuramsal, Olgusal Identifies, formulates, and solves engineering problems, selects and applies appropriate analytical methods and modeling techniques, 2
PLO03 Bilgi - Kuramsal, Olgusal Analyzes a system, its component, or process and designs under realistic constraints to meet the desired requirements,gains the ability to apply the methods of modern design accordingly. 4
PLO04 Bilgi - Kuramsal, Olgusal Ability to use modern techniques and tools necessary for engineering practice and information technologies effectively. 3
PLO05 Bilgi - Kuramsal, Olgusal Ability to design and to conduct experiments, to collect data, to analyze and to interpret results 5
PLO06 Bilgi - Kuramsal, Olgusal Has ability to work effectively as an individual and in multi-disciplinary teams, take sresponsibility and builds self-confidence
PLO07 Beceriler - Bilişsel, Uygulamalı Can access information,gains the ability to do resource research and uses information resources 3
PLO08 Beceriler - Bilişsel, Uygulamalı Awareness of the requirement of lifelong learning, to follow developments in science and technology and continuous self-renewal ability 3
PLO09 Yetkinlikler - Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği Ability to communicate effectively orally and in writing, and to read and understand technical publications in at least one foreign language 2
PLO10 Yetkinlikler - Öğrenme Yetkinliği Professional and ethical responsibility, 3
PLO11 Yetkinlikler - Öğrenme Yetkinliği Awareness about project management, workplace practices, employee health, environmental and occupational safety, and the legal implications of engineering applications, 3
PLO12 Yetkinlikler - Öğrenme Yetkinliği Becomes aware of universal and social effects of engineering solutions and applications, entrepreneurship and innovation, and knowledge of contemporary issues 2


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.2023 04:23