Overview

1. Introduction

2. Modern Processors

  1. Stored program compute architecture

  2. Microarchitecture

    • Pipelining
    • Superscalarity
    • SIMD
  3. Hierarchies

    • Caches
    • Prefetching
    • Cache mapping
    • Cache coherence

3. Basic optimization

  1. Motivation
  2. Monitoring
  3. Evolution of Performance Aspects
  4. Common sense optimizations

4. Data access optimization

  1. Characterizing Performance
  2. Balance analysis
  3. Algorithm classification and access optimization
  4. Sparse matrices

5. Parallel computers

  1. Flynns taxonomy
  2. Amdahl
  3. Gustavson
  4. Multithreaded multicore processors
  5. Shared memory and distributed memory
  6. Network performance characteristics
  7. Network topologies

    1. Graph theory
    2. Bus
    3. Ring
    4. Tree
    5. Mesh
    6. Torus
    7. hypercube
  8. TOP 500

6. Parallelization and optimization strategies

7. OpenMP

8. MPI

9. Hybrid programming

10. GPU