The course includes with the fundamental aspects of programming "shared-memory" architectures:
- Synchronization
- Virtual clocks
- Memory consistency models
- Data race detection
- Data parallel programming
It also presents the fundamentals of programming "distributed memory" architectures:
- Master-Worker
- Map-Reduce