Need of Performance, Building Parallel Systems, Why to Write Parallel Programs? How toWrite Parallel Programs? Approach : Concurrent, Parallel, Distributed
Background, Modifications to the von Neumann Model, Parallel Hardware, ParallelSoftware, Input and Output, Performance, Parallel Program Design and Writing andRunning Parallel Programs
Getting Started, The Trapezoidal Rule in MPI, Dealing with I/O, CollectiveCommunication, MPI Derived Data types, A Parallel Sorting Algorithm
Processes, Threads and Pthreads, Hello, World program ,Matrix-Vector Multiplication,Critical Sections Busy-Waiting, Mutexes, Producer-Consumer Synchronization andSemaphores, Barriers and Condition Variables, Read-Write Locks, Caches, Cache-Coherence, and False Sharing and Thread-Safety
Introduction to OpenMP, The Trapezoidal Rulem Scope of Variables, The ReductionClause, The Parallel For Directive, More About Loops in OpenMP: Sorting, SchedulingLoops, Producers and Consumers, Caches, Cache-Coherence, and False Sharing andThread-Safety
Two N-Body Solvers, Tree Search and Case Studies