The power and potential of parallelism, Examining sequential and parallel programs, Parallelism using multiple instruction streams, The Goals: Scalability and performance portability, Balancing machine specifics with portability, A look at six parallel computers: Chip multiprocessors, Symmetric multiprocessor architectures, Heterogeneous chip designs, Clusters, Supercomputers, Observations from the six parallel computers.
Motivation and basic concepts, Sources of performance loss, Parallel structure, Performance trade-offs, Measuring performance, Scalable performance.
Introduction to Intel Architecture, How an Intel Architecture System works, Basic Components of the Intel Core 2 Duo Processor: The CPU, Memory Controller, I/O Controller; Intel Core i7: Architecture, The Intel Core i7 Processor, Intel QuickPath Interconnect, The SCH; Intel Atom Architecture. Introduction to Texas Instruments’ Multi-Core Multilayer SoC architecture for communications, infrastructure equipment
Introduction, The Task / Channel model, Foster’s design methodology, Examples: Boundary value problem, Finding the maximum, The n-Body problem, Adding data input.
Designing for threads: Task decomposition, Data decomposition, Data flow decomposition, Implications of different decompositions; Challenges in decomposition, Parallel programming patters, A motivating problem: Error diffusion. Threading and Parallel Programming Constructs: Synchronization, Critical sections, Deadlocks, Synchronization primitives: Semaphores, Locks, Condition variables; Messages, Flow Control-Based concepts: Fence, Barrier; Implementation-Dependent threading issues.
Introduction, The shared-memory model, Parallel for loops, Declaring private variables, Critical sections, Reductions, Performance improvements, More general data parallelism, Functional parallelism.
Too many threads, Data races, deadlocks, and live locks, Heavily contended locks, Non-blocking algorithms, Thread-safe functions and libraries, Memory issues, Cache-related issues, Avoiding pipeline stalls, Data organization for high performance.
Single-Core Processors: Processor architecture fundamentals, Comparing Superscalar and EPIC architectures. Multi-Core Processors: Hardware-based threading, Hyper-threading technology, Multi-Core processors, Multiple processor interactions, Power consumption, Beyond multi-core architecture.