UNIT-I ??Multi-Core Processors
Single core to Multi-core architectures – SIMD and MIMD systems – Interconnection networks – Symmetric and Distributed Shared Memory Architectures – Cache coherence – Performance Issues – Parallel program design.
UNIT-II ?Parallel Program Challenges
Performance – Scalability – Synchronization and data sharing – Data races – Synchronization primitives (mutexes, locks, semaphores, barriers) – deadlocks and livelocks – communication between threads (condition variables, signals, message queues and pipes).
UNIT-III ??Shared Memory Programming with OpenMP
OpenMP Execution Model – Memory Model – OpenMP Directives – Work-sharing Constructs – Library functions – Handling Data and Functional Parallelism – Handling Loops – Performance Considerations.
UNIT-IV ??Distributed Memory Programming with MPI
MPI program execution – MPI constructs – libraries – MPI send and receive – Point-to-point and Collective communication – MPI derived datatypes – Performance evaluation
UNIT-V ??Parallel Program Development
Case studies – n-Body solvers – Tree Search – OpenMP and MPI implementations and comparison
?