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