Lecture Schedule

January
24:Course overview [Pingali] slides
26:Computational Science Applications [Pingali] slides
31:Delaunay Mesh Generation [Kulkarni] slides
February
2:Shared memory programming: OpenMP [Bronevetsky]
OpenMP resources can be found here
7:Commercial work-loads [Choi] slides

9:Memory consistency models [Pingali] slides
A tutorial on memory consistency models is available here

14:Parallelization:Overview [Kulkarni]
16:Optimistic:Transactional memory model (hardware) [Bhadauria] slides
M. Herlihy and J. Eliot B. Moss, Transactional Memory: Architectural Support for Lock-free Data Structures
21:Transactional memory model (software) [Bitirgen] slides
Nir Shavit and Dan Touitou. Software Transactional Memory
Tim Harris and Keir Fraser, Language Support for Lightweight Transactions
23: Thread-level speculation [Singh] slides
L. Rauchwerger, Y. Zhan and J. Torellas, Hardware for Speculative Run-time Parallelism in Distributed Shared Memory Multiprocessors
Christopher J. F. Pickett and Clark Verbrugge, Software Thread Level Speculation for the Java Language and Virtual Machine Environment
28:Pessimistic:Array programs(integer linear programming) [Pingali] slides
March
2:Parallelization:Solving integer linear programming problems [Pingali] same slides as previous lecture
7:Loop transformations [Pingali] slides
9:Alias analysis of pointer-based programs [Weaver]
J. Hummel, L. Hendren and A. Nicolau, A general data dependence test for dynamic, pointer-based data structures
S. Horwitz, P. Pfieffer and T. Reps, Dependence Analysis for Pointer Variables
14:Interprocedural alias analysis [Sheikh]
A. Deutsch, Interprocedural May-alias Analysis for Pointer: Beyond k-limiting
16:Shape analysis [Dilkina]
M. Sagiv, T. Reps and R. Wilhelm, Parametric Shape Analysis via 3-Valued Logic
B. Hackett and R. Rugina, Region-based Shape Analysis with Tracked Locations
28:Using alias and shape analysis for parallelization [Kimball]
R.Ghiya and Hendren, Is it a tree, DAG or a cyclic graph? A shape analysis for heap-directed pointers in C

R. Ghiya, L. Hendren and Y. Zhu, Detecting Parallelism in C Programs with Recursive Data Structures

30:Commutativity analysis and fractal symbolic analysis [Vasani]
Martin C. Rinard and Pedro C. Diniz, Commutativity Analysis: A New Analysis Technique for Parallelizing Compilers
N. Mateev, V. Menon and K. Pingali, Fractal Symbolic Analysis
April
4:Memory hierarchy issues: Cache conscious approach [Pingali]
6:Multi-level memory hierarchies [Pingali]
11:Cache-oblivious approach [Kirman, N.]
M. Frigo, C. Leiserson, H. Prokup and S. Ramachandran, Cache-Oblivious Algorithms
Erik D. Demaine, Cache-Oblivious Algorithms and Data Structures

13:Self-optimizing systems: ATLAS [Ipek]
K. Yotov, X. Li, G. Ren, M. Garzaran, D. Padua, K. Pingali and P. Stodhill, Is Search Really Necessary to Generate High-performance BLAS?
18:FFTW and SPIRAL [Bhadauria]
Matteo Frigo, A Fast Fourier Transform Compiler
J. Xiong, J. Johnson, R. Johnson and D. Padua, SPL: A Language and Compiler for DSP Algorithms

20:Load balancing and scheduling: Cilk [Kirman, M.]
Robert Blumofe and Charles Leiserson, Scheduling Multithreaded Computations by Work Stealing

25:Project presentations
27:
May
2:
4: