Course
COEY1213989
PARALLEL PROGRAMMING and ALGORITHMS
- LECTURE
- 3
- LAB
- 0
- CREDITS
- 3
- ECTS
- 8
AIM
This course fundamentally aims to comprehensively explore parallel programming and algorithms, providing students with a unique perspective through various real-world applications, and equipping them with the necessary knowledge and skills for designing, implementing, and optimizing advanced computing systems for emerging technologies.
CONTENT
This course contains; Introduction to Parallel Computing,Types of Parallelism,Shared-Memory Architectures,Distributed-Memory Architectures,Shared-Memory Programming Model,Distributed-Memory Programming Model,Performance Metrics and Scalability,Parallel Algorithms Design – Foundations & Advanced Concepts,Scalable Data Structures and Algorithms for Parallel Computing,Synchronization and Communication in Parallel Computing,Debugging and Opitimizing Parallel Programs,Computing in Real-World Applications,High-Performance Computing and Big Data,Cloud-Based Parallel Computing and Emerging Technologies.
LEARNING OUTCOMES
- 1
Specializes in parallel programming policies.
Taught by: Lecture Method · Assessed by: Traditional Written Exam, Homework, Project Task
- 2
Gains proficiency in parallel programming models.
Taught by: Lecture Method · Assessed by: Traditional Written Exam, Homework, Project Task
- 3
Advanced information gain is achieved in parallel algorithm design.
Taught by: Lecture Method · Assessed by: Traditional Written Exam, Homework, Project Task
- 4
Understands performance optimization in parallel computing.
Taught by: Lecture Method · Assessed by: Traditional Written Exam, Homework, Project Task
- 5
Analyzes gaining insight into practical applications and new trends.
Taught by: Lecture Method · Assessed by: Traditional Written Exam, Homework, Project Task
WEEKLY PLAN
- WEEK 1
Introduction to Parallel Computing
- WEEK 2
Types of Parallelism
- WEEK 3
Shared-Memory Architectures
- WEEK 4
Distributed-Memory Architectures
- WEEK 5
Shared-Memory Programming Model
- WEEK 6
Distributed-Memory Programming Model
- WEEK 7
Performance Metrics and Scalability
- WEEK 8
Parallel Algorithms Design – Foundations & Advanced Concepts
- WEEK 9
Scalable Data Structures and Algorithms for Parallel Computing
- WEEK 10
Synchronization and Communication in Parallel Computing
- WEEK 11
Debugging and Opitimizing Parallel Programs
- WEEK 12
Computing in Real-World Applications
- WEEK 13
High-Performance Computing and Big Data
- WEEK 14
Cloud-Based Parallel Computing and Emerging Technologies
ASSESSMENT
- Rate of Midterm Exam to Success50%
- Rate of Final Exam to Success50%
WORKLOAD
| ACTIVITY | COUNT | HOURS | TOTAL |
|---|---|---|---|
| Course Hours | 14 | 3 | 42 |
| Guided Problem Solving | 0 | 0 | 0 |
| Resolution of Homework Problems and Submission as a Report | 6 | 10 | 60 |
| Term Project | 0 | 0 | 0 |
| Presentation of Project / Seminar | 2 | 30 | 60 |
| Quiz | 0 | 0 | 0 |
| Midterm Exam | 1 | 20 | 20 |
| General Exam | 1 | 35 | 35 |
| Performance Task, Maintenance Plan | 0 | 0 | 0 |
READING
- Grama, A. et al. (2003) Introduction to parallel computing, Second edition. Addison-Wesley.
- Pacheco, P.S. and Malensek, M. (2022) An introduction to parallel programming / Peter S. Pacheco, Matthew Malensek. Cambridge, MA: Morgan Kaufmann Publishers, an imprint of Elsevier.
TEACHING STAFF
- Prof.Dr. Mehmet Kemal ÖZDEMİRCOORDINATOR
- Prof.Dr. Mehmet Kemal ÖZDEMİR