Skip to content

Course

COEY1213989

PARALLEL PROGRAMMING and ALGORITHMS

LECTURE
3
LAB
0
CREDITS
3
ECTS
8

REQUIRES

None

REQUIRED BY

None

TAUGHT IN

LANGUAGEEnglishLEVELSecond Cycle (Master's Degree)TYPEElective

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

    Specializes in parallel programming policies.

    Taught by: Lecture Method · Assessed by: Traditional Written Exam, Homework, Project Task

  2. 2

    Gains proficiency in parallel programming models.

    Taught by: Lecture Method · Assessed by: Traditional Written Exam, Homework, Project Task

  3. 3

    Advanced information gain is achieved in parallel algorithm design.

    Taught by: Lecture Method · Assessed by: Traditional Written Exam, Homework, Project Task

  4. 4

    Understands performance optimization in parallel computing.

    Taught by: Lecture Method · Assessed by: Traditional Written Exam, Homework, Project Task

  5. 5

    Analyzes gaining insight into practical applications and new trends.

    Taught by: Lecture Method · Assessed by: Traditional Written Exam, Homework, Project Task

WEEKLY PLAN

  1. WEEK 1

    Introduction to Parallel Computing

  2. WEEK 2

    Types of Parallelism

  3. WEEK 3

    Shared-Memory Architectures

  4. WEEK 4

    Distributed-Memory Architectures

  5. WEEK 5

    Shared-Memory Programming Model

  6. WEEK 6

    Distributed-Memory Programming Model

  7. WEEK 7

    Performance Metrics and Scalability

  8. WEEK 8

    Parallel Algorithms Design – Foundations & Advanced Concepts

  9. WEEK 9

    Scalable Data Structures and Algorithms for Parallel Computing

  10. WEEK 10

    Synchronization and Communication in Parallel Computing

  11. WEEK 11

    Debugging and Opitimizing Parallel Programs

  12. WEEK 12

    Computing in Real-World Applications

  13. WEEK 13

    High-Performance Computing and Big Data

  14. WEEK 14

    Cloud-Based Parallel Computing and Emerging Technologies

ASSESSMENT

  • Rate of Midterm Exam to Success50%
  • Rate of Final Exam to Success50%

WORKLOAD

ACTIVITYCOUNTHOURSTOTAL
Course Hours14342
Guided Problem Solving000
Resolution of Homework Problems and Submission as a Report61060
Term Project000
Presentation of Project / Seminar23060
Quiz000
Midterm Exam12020
General Exam13535
Performance Task, Maintenance Plan000

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