CS 498 Program Optimization

Fall 2006


Lecture Notes

Introduction

Compiler Challenges (first chapter of the book "Optimizing Compilers for Modern Architectures", by Randy Allen and Ken Kennedy, Morgan and Kaufmann Publishers, 2002)

Compiler Optimizations (chapters 12-19 of the book "Advanced Compiler Design Implementation", by S. Muchnick, Morgan and Kaufmann Publishers, 1997)

Vtune, by Paul Petersen from INTEL

Threading Tools, by Paul Petersen from INTEL

Locality/Tiling-I

Locality for non-numerical codes

Parallel Programming, by Arch Robison from INTEL

Introduction to OpenMP

Introduction to Pthreads

Instruction Level Parallelism

Hierarchically Tiled Arrays: A Programming Paradigm for Parallelism and Locality , by Ganesh Bikshandi

Introduction to Library Generators

The Atlas System

Iterative Compilation with Kernel Exploration, by Denis Barthou

Automatic Tuning Matrix Multiplication Performance on Graphics Hardware, by Changhao Jiang

Sparse Matrix-Vector Multiplication (Sparsity, Bebop)

A Dynamically Tuned Sorting Library

Optimizing Sorting with Genetic Algorithms

Parallel Mining Frequent Patterns: A Sampling-based Approach

C++ Design Techniques for High Performance by Ganesh Bikshandi

SPIRAL: Algorithms and Computation in Signal Processing by James Brodman

Exercises that are helpful to prepare the final exam.