
| Course Code | : CSE407 |
| Course Type | : Area Elective |
| Couse Group | : First Cycle (Bachelor's Degree) |
| Education Language | : English |
| Work Placement | : N/A |
| Theory | : 2 |
| Prt. | : 2 |
| Credit | : 3 |
| Lab | : 0 |
| ECTS | : 6 |
In this course, the intent is to familiarize students with parallel computer systems and their programming models. In addition to emphasizing the benefits of parallel systems and parallel programming, the challenges in writing a correct parallel code are mentioned. We also discuss the technology barriers (power wall and ILP wall) in single core processors (superscalar), which make the parallel computers a necessity to ensure the sustainability of Amdahl's Law.
The coherence issue arising from the presence of private caches in parallel systems is introduced, and cache coherence protocols for overcoming this problem are covered in detail. Cache coherent nonuniform memory access (ccNUMA) systems are introduced, and their performance benefits are mentioned as well. As a programming model for shared memory based parallel machines, OpenMP is covered extensively with a focus on its features that enable work to be shared among multiple threads. MPI programming paradigm for distributed memory systems is also briefly discussed.
| 1. | Classify the parallel architectures. |
| 2. | Appraise the benefits of parallel machines as well as recognize the challenges arising from writing correct parallel codes to obtain the best performance from such computers. |
| 3. | Asses if parallel computing is inevitable. |
| 4. | Explain what the cache coherence is and enumerate the protocols for solving this problem. |
| 5. | Interpret the software demands and technological pushes that led to the emergence of chip multiprocessors. |
| 6. | Justify ccNUMA systems and their performance benefits as well. |
| 7. | Write programs in the OpenMP and MPI programming models. |
| 8. | Enumerate the different forms of parallelism in programs and tell what kind of parallel machine is required to exploit a particular type. |
| 1. | Using OpenMP, Portable Shared Memory Parallel Programming by B. Chapman, G. Jost, R. V. D. Pas, The MIT Press Cam-bridge, Massachusetts, 2008. |
| 2. | Parallel Programming in OpenMP by R. Chandra, L. Dagum, D. Kohr, D. Maydan, J. McDonald, R. Menon, Morgan Kaufmann Publishers, 2001 |
| Type of Assessment | Count | Percent |
|---|---|---|
| Laboratory | 1 | %5 |
| Assignment | 5 | %5 |
| Quiz | 4 | %15 |
| Midterm Examination | 1 | %15 |
| Final Examination | 1 | %60 |
| Activities | Count | Preparation | Time | Total Work Load (hours) |
|---|---|---|---|---|
| Lecture - Theory | 14 | 0 | 2 | 28 |
| Lecture - Practice | 14 | 0 | 2 | 28 |
| Assignment | 5 | 2 | 1 | 15 |
| Project | 1 | 8 | 7 | 15 |
| Quiz | 4 | 5 | 1 | 26 |
| Midterm Examination | 1 | 16 | 2 | 18 |
| Final Examination | 1 | 16 | 2 | 18 |
| TOTAL WORKLOAD (hours) | 148 | |||
PÇ-1 | PÇ-2 | PÇ-3 | PÇ-4 | PÇ-5 | PÇ-6 | PÇ-7 | PÇ-8 | PÇ-9 | PÇ-10 | PÇ-11 | |
OÇ-1 | 5 | 4 | 4 | 4 | |||||||
OÇ-2 | 5 | 4 | 5 | 4 | 4 | 4 | |||||
OÇ-3 | 4 | 4 | |||||||||
OÇ-4 | 5 | 4 | |||||||||
OÇ-5 | 4 | 5 | 4 | 4 | 4 | 4 | |||||
OÇ-6 | 4 | 4 | 4 | 4 | |||||||
OÇ-7 | 5 | 4 | 5 | 5 | |||||||
OÇ-8 | 4 | 4 | 4 | 4 | 4 | 4 | |||||