| Academic Unit: |
Management Information Systems |
| Mode of Delivery: |
Face to face |
| Prerequisites: |
None |
| Language of Instruction: |
English |
| Level of Course Unit: |
Doctorate |
| Course Coordinator: |
- - |
| Course Objectives: |
1. To gain basic knowledge and skills in the field of parallel computing.
2. To teach the design and analysis of parallelizing the traditional and modern numerical methods used in the solution of medium and large-scale scientific and engineering problems.
3. To introduce the necessary tools and methods required for the running of parallel algorithms on various computing platforms.
4. To gain the elementary skills required for running the designed algorithms on large scale distributed, shared-memory and distributed-shared memory server systems |
| Course Contents: |
Introduction to parallelism. Principles of parallel programming. Parallel Computing Architectures, OS and Memory Hierarchy. Caches, Virtual Memory and Programming Performance. Message Passing Computing: point-to-point, collective communications. Parallel algorithm examples. Parallel Techniques: partitioning, pipelining, synchronous computations, load balancing. Advanced examples. Programming with shared memory: architecture, threads, accessing shared data, cache coherence systems. Programming with OpenMP. |
| Learning Outcomes of the Course Unit (LO): |
- 1- Understand and use of parallel algorithms and know the possible bounding factors.
- 2- Understand in general terms, the size of the potential gains for a given problem when ported to a parallel server system.
- 3- Choose a suitable parallel algorithm for a given problem
- 4- Get to know and learn the necessary tools for constructing the parallel algorithms.
- 5- Be able to write and run the parallel algorithms in distributed and shared-memory systems.
|
| Planned Learning Activities and Teaching Methods: |
In class lectures, homework, quizzes, laboratory exercises, midterm and final exams |
| Week | Subjects | Related Preperation |
| 1 |
Introduction to high performance computing |
|
| 2 |
Parallel computing architectures |
|
| 3 |
Memory Hierarchy |
|
| 4 |
Cache, virtual memory and programming performance |
|
| 5 |
Message Passing Computing I |
|
| 6 |
Message Passing Computing II |
|
| 7 |
Embarrassingly parallel algorithms |
|
| 8 |
Partitioning, divide and conquer strategies |
|
| 9 |
Synchronous and data parallel computations |
|
| 10 |
Dynamic load balancing |
|
| 11 |
Programming with shared memory I |
|
| 12 |
Programming with shared memory II |
|
| 13 |
Programming with shared memory III |
|
| 14 |
Review |
|
At Kadir Has University, a Semester is 14 weeks; The weeks 15 and 16 are reserved for final exams.
THE RELATIONSHIP BETWEEN COURSE LEARNING OUTCOMES (LO) AND PROGRAM QUALIFICATIONS (PQ)
| # |
PQ1 |
PQ2 |
PQ3 |
PQ4 |
PQ5 |
PQ6 |
PQ7 |
PQ8 |
PQ9 |
PQ10 |
PQ11 |
PQ12 |
| LO1 |
|
|
|
|
|
|
|
|
|
|
|
|
| LO2 |
|
|
|
|
|
|
|
|
|
|
|
|
| LO3 |
|
|
|
|
|
|
|
|
|
|
|
|
| LO4 |
|
|
|
|
|
|
|
|
|
|
|
|
| LO5 |
|
|
|
|
|
|
|
|
|
|
|
|
Contribution: 1 Low, 2 Average, 3 High