Concepts and applications of parallel and distributed programs. Process interaction using shared variables and message passing; parallel computing; development of correct programs; general problem solving techniques; scientific computing; distributed systems. Programming assignments on multiple processor machines.
Prerequisites: CSc 252, 345, and 352
Open D2L Course Site →- Writing parallel programs
- Shared-memory synchronization: critical sections, locks, semaphores, monitors, barriers
- Distributed-memory communication: message passing, rendezvous
- Shared- and distributed-memory programming paradigms
- Applications: peer-to-peer computing, map/reduce, data-parallel computing
- Languages and libraries for parallel computing
The course covers how to write concurrent and parallel programs, how to ensure correct concurrent program behavior through synchronization, and various parallel and distributed computing application areas.
At the end of the course, students will understand multithreaded, parallel, and distributed programming and related concepts such as synchronization and communication.