Introduction: The Reality of High Performance Computing - Modern Algorithms –
Compilers - Scientific Algorithms – History - State-of-Art and Perspective - Things
that are not Traditional Supercomputers. Parallel Computing - PDC models working
mechanism - scalability of PDC architectures – applications, performance metrics
and Amdahl’s Law.
Models and Algorithms - PRAM algorithms, Process-level parallelism, data-level
parallelism, Problem partitioning, divide-and-conquer, Distributed algorithms –
Algorithm design techniques - filters, client / server, heartbeat, probe / echo, token
passing, replicated servers Communication - Interconnection network design,
Topological and parametric models of interconnection networks; routing mechanisms;
flow control mechanisms, communication protocols, Communication primitives -
Point-to-point communication primitives; group communication patterns; broadcast
in distributed systems, CSP, MPI; Synchronization - Locks, monitors, barriers;
deadlock; hardware primitives and implementation issues; clock synchronization,
distributed mutual exclusion; distribute deadlock detection.
Computation: Threads - Creation, coordination, termination; futures. Shared Memory
- Models of memory consistency; implementation of consistency protocols;
transactions: serializability, concurrency - control, commit protocols; Linda.
Scheduling and Load Balancing: Load distribution algorithms; task migration; coscheduling; affinity scheduling; self-scheduling in loops.