CENG019 Parallel and Distributed Computing

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

Information

Code CENG019
Name Parallel and Distributed Computing
Semester . Semester
Duration (T+A) 3-0 (T-A) (17 Week)
ECTS 6 ECTS
National Credit 3 National Credit
Teaching Language İngilizce
Level Yüksek Lisans Dersi
Type Normal
Mode of study Yüz Yüze Öğretim
Catalog Information Coordinator Dr. Öğr. Üyesi SERKAN KARTAL


Course Goal

Understand the fundamental questions in parallel and distributed computing and analyze different solutions to these questions Understand different parallel and distributed programming paradigms and algorithms, and gain practice in implementing and testing solutions using these.

Course Content

This course covers a broad range of topics related to parallel and distributed computing, including parallel and distributed architectures and systems, parallel and distributed programming paradigms, parallel algorithms, and scientific and other applications of parallel and distributed computing.

Course Precondition

Basic knowledge of C programming and computer architecture.

Resources

An Introduction to Parallel Programming by Peter Pacheco

Notes

Designing and Building Parallel Programs, by Ian Foster


Course Learning Outcomes

Order Course Learning Outcomes
LO01 develop programs with distributed parallelism, parallel debugging included
LO02 construct parallel algorithms, i.e. identify parallelism in a given algorithm and implement it
LO03 analyse properties such as efficiency, speedup etc., of parallel algorithms
LO04 analyse performance of parallel algorithms


Relation with Program Learning Outcome

Order Type Program Learning Outcomes Level
PLO01 Bilgi - Kuramsal, Olgusal On the basis of the competencies gained at the undergraduate level, it has an advanced level of knowledge and understanding that provides the basis for original studies in the field of Computer Engineering. 3
PLO02 Bilgi - Kuramsal, Olgusal By reaching scientific knowledge in the field of engineering, he/she reaches the knowledge in depth and depth, evaluates, interprets and applies the information. 2
PLO03 Yetkinlikler - Öğrenme Yetkinliği Being aware of the new and developing practices of his / her profession and examining and learning when necessary. 4
PLO04 Yetkinlikler - Öğrenme Yetkinliği Constructs engineering problems, develops methods to solve them and applies innovative methods in solutions. 5
PLO05 Yetkinlikler - Öğrenme Yetkinliği Designs and applies analytical, modeling and experimental based researches, analyzes and interprets complex situations encountered in this process. 4
PLO06 Yetkinlikler - Öğrenme Yetkinliği Develops new and / or original ideas and methods, develops innovative solutions in system, part or process design.
PLO07 Beceriler - Bilişsel, Uygulamalı Has the skills of learning.
PLO08 Beceriler - Bilişsel, Uygulamalı Being aware of new and emerging applications of Computer Engineering examines and learns them if necessary. 2
PLO09 Beceriler - Bilişsel, Uygulamalı Transmits the processes and results of their studies in written or oral form in the national and international environments outside or outside the field of Computer Engineering.
PLO10 Beceriler - Bilişsel, Uygulamalı Has comprehensive knowledge about current techniques and methods and their limitations in Computer Engineering. 3
PLO11 Beceriler - Bilişsel, Uygulamalı Uses information and communication technologies at an advanced level interactively with computer software required by Computer Engineering.
PLO12 Bilgi - Kuramsal, Olgusal Observes social, scientific and ethical values in all professional activities.


Week Plan

Week Topic Preparation Methods
1 Introduction, Parallel and Distributed Computing Reading related chapter in lecture notes Öğretim Yöntemleri:
Anlatım
2 Parallel and Distrubuted Architectures, Socket programming Reading related chapter in lecture notes Öğretim Yöntemleri:
Anlatım
3 Parallel Performance, Shared Memory and Threads Reading related chapter in lecture notes Öğretim Yöntemleri:
Anlatım
4 Parallel Algorithms Reading related chapter in lecture notes Öğretim Yöntemleri:
Anlatım
5 Parallel Algorithms, OpenMP Reading related chapter in lecture notes Öğretim Yöntemleri:
Anlatım
6 Scalable Algorithms, Message Passing Reading related chapter in lecture notes Öğretim Yöntemleri:
Anlatım
7 MPI and Teragrid Reading related chapter in lecture notes Öğretim Yöntemleri:
Anlatım
8 Mid-Term Exam Study to lecture notes and application Ölçme Yöntemleri:
Yazılı Sınav
9 Distributed Systems, MapReduce, Clusters Reading related chapter in lecture notes Öğretim Yöntemleri:
Anlatım
10 Distributed Coordination, Security Reading related chapter in lecture notes Öğretim Yöntemleri:
Anlatım
11 Distributed File Systems Reading related chapter in lecture notes Öğretim Yöntemleri:
Anlatım
12 Distributed File Systems, Security Reading related chapter in lecture notes Öğretim Yöntemleri:
Anlatım
13 Distributed Shared Memory Reading related chapter in lecture notes Öğretim Yöntemleri:
Anlatım
14 Cloud Computing and Project Presentations Reading related chapter in lecture notes Öğretim Yöntemleri:
Anlatım
15 Project Presentations Presentation Preparation Öğretim Yöntemleri:
Anlatım
16 Term Exams Study to lecture notes and application Ölçme Yöntemleri:
Yazılı Sınav
17 Term Exams Study to lecture notes and application Ö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