Академический Документы
Профессиональный Документы
Культура Документы
Spring 2010
Maria J. Garzaran
4
Course Subject
• Importance of reducing execution time
– Faster programs are better.
• An interactive environment exacerbates the thirst
for speed.
• More science/better engineering designs in same
amount of time
– Although machines are getting more powerful,
sometimes the only way to take advantage of this
power is through program optimization.
• Itanium instruction level parallelism
• Multicore machines
Evolution of Processors (Intel)
– Automatically
• By a compiler
• By developing code generators that automatically search for
best shape of the program. Here the choices are those of the
programmer while in a compiler the choices are those of the
compiler writer.
So, we have 3 choices …
• Option 1: Use the compiler
10
Option 1: using the compiler
• It is the most desirable option, but we will
find that this does not always work well
11
Option 2: Manual Tuning
• Choose the right algorithm
quicksort
Execution Time
Execution Time
~2X
~2X
~2x
~2x
vendor
library
Input Set Input Set
14
Compilers versus Libraries in DFT
18
Library Generators
19
Library Generators
• How do they work?
– They use empirical search for program
optimization
21
Course Subject
• Focus of this course is discuss how to reduce the
execution time of a program.
– There many ways to solve a problem and in many cases it is not clear
which one is better. It depends on the class of machine, and the
characteristics of the input data. For example, it is difficult to know when
is quicksort better than radix sort.
• F 3/12: Midterm
Tentative Course Outline
• W 3/17: Introduction to Library Generators.
Empirical Search
• F 3/19- 3/31: The ATLAS system (2
lectures)
• F 4/2: Cache Oblivious algorithms
• W 4/7-4/9: Sorting (2 lectures)
• F 4/9: Sorting
• W 4/14: The SPIRAL system
Tentative Course Outline
• F: 4/16: The SPARSITY system
• F: 4/21: Datamining optimizations (2
lectures)
• W: 5/5: TBD.
Format of the class
• I will use slides (will put the slides in advance)