Basic material

--------------------

(1) Course overview

Parallel architectures, parallel algorithms, parallel data
structures

Slides: intro.pdf

Readings:

(1) Moore's Law paper, Electronics, 1965.

(2) Static Power Model for
Architects, Butts and Sohi, Micro 2000.

(3) Introduction to the Cell processor,
Kahle et al, IBM J.Res&Dev, July 2005

(4) The TAO of
Parallelism in Algorithms, Pingali et al., 2011

(2) Sources of Parallelism and Locality in Regular and Irregular
Algorithms

Ordinary
differential equations (ode's), finite-differences,
finite-elements, n-body methods, graph analytics

Slides: Some
computational science algorithms Graph algorithms
MachineLearning1
MachineLearning2

Readings:

(1) Mathematica
tutorial on numerical methods for solving pde's

(2) Delta-stepping: A
Parallel Single-Source Shortest Path Algorithm Meyer and
Sanders (ESA'98)

(3) The anatomy of a large-scale hypertextual web search engine Brin
and Page, Computer Networks and ISDN Systems, April 1998.

(3) Locality(I): Temporal and spatial locality, caches, blocked algorithms

Slides: Cache
models for locality

Readings:

(1) Anatomy of high-performance matrix multiplication, Goto et al, ACM TOMS, May 2008.

(4) Locality(II): Cache-oblivious algorithms

Slides: Cache-oblivious
Programs

Readings:

(1) Cache-oblivious
algorithms, Frigo et al, FOCS 99

(2) An
experimental comparison of cache-oblivious and cache-conscious
programs, Yotov et al, SPAA 2007

(5) Vectorization

Slides:

(6) Optimization for Performance

Slides: Memory Optimization
Graph partitioning

(7) Synthesis of parallel programs

Slides: