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