Classification of parallel
programming; Shared ressources
Classification of parallel hardware by data/instruction streams
[Flynn’s taxiometry] and by
access to shared ressources. Bottlenecks and hazards in general parallel
programming (data race, dead lock). Perfor-
mance comparisons regarding speedup and efficiency
Contents:
- Levels of Parallelism [Rauber §2.1].
- Flynn [Rauber §2.2]: SISD, SIMD, MIMD [, SPMD, SIMT]
- Shared vs. Distributed Memory [Rauber §2.3]
- Multicore [Rauber §2.4]
- Interconnection networks [Rauber §2.5]
- Cache coherancy [Rauber §2.7]
- Shared ressources
- data race
- atomic operations
- deadlock: Dining philosophers problem
(java)
- synchronization: semaphores vs. message passing
- Speedup (weak, strong), effciency
Demonstration:
- Scalar product (show data race)
- matrix-vektor product