Overview
This course provides an introduction to Multi-Core Architecture and a complete survey of the importance of parallelism, threading concepts, multi-threading methodology and programming with threads. The course also covers an introduction to parallel programming including topics such as Data Dependencies, Data Races, Synchronization or Locking Concepts, Deadlocks and also provides a manual technique for mapping out data dependencies in an algorithm using a dependency graphs. The course also includes an overview of performance analysis for Multi-Core platforms.