Skip to end of metadata
Go to start of metadata

CS 498: Program Optimization

Lectures: Wednesday and Friday 11:00am - 12:15am, 1103SC


Maria Garzaran
E-mail: garzaran@illinois.edu
Webpage: http://polaris.cs.uiuc.edu/~garzaran
Office: 4308 SC
Office Hours: Mondays 11:00 - 12:00 or by appointment.


The class will be mostly based on research papers, but for a few lectures we will follow the book "The Software Optimization Cookbook, High Performance Recipes for IA-32 Platforms", Second Edition, by Richard Gerber, Aart J.C. Bik, Kevin B. Smith, and Xinmin Tian, published by INTEL Press, 2006. ISBN: 0-9764832-1-1.


May 5
Solutions for hw3 have been posted in the Assignments page.

May 4
The final exam will be on Monday May 10th, from 13:30 to 16:30 in Siebel, room 1214. The final will cover lectures 8 - 16. 

April 28

Solutions to the assignment 2 have been posted in the Assignment Section.
April 20

Assignment 4 has been posted in the Assignments Section. It is only mandatory for students who registered for 4 credits. It is optional for students that registered for 3 credits.

April 16

You can find here a file that explains how to allocate superpages in Windows. Thanks to David Majnemer for the information.

I posted a simple example that you can use to play with the #pragma ivdep of the icc compiler.
Note several things:

  • K should be an argument to function because if we replace K with 1, then compiler clearly sees the dependency and does not vectorize.
  • For 2 dimensional arrays there is no such a "problem", the compiler ignores the dependency even if we replace K with 1. It is weird! Who wants to understand compilers?
  • The #pragma auto_inline (off) is necessary; otherwise the compiler inlines the function and knows K is 1

April 15

Assignment 3 has been posted in the Assignments Section.

April 13

Here are some comments about the take home part of the [midterm\|Home^solution-midter1-takehome.pdf|]. I will bring the midterm and
homework 1 to the class tomorrow, April 14th.

April 5

Homework 1 has been graded. Stop by my office if you want to see the grade. I will
return it after grading the take home part of the first midterm, as I want to look at what
you did different.

March 31

The deadline for assignment 2 has been extended until Wednesday April 7th.

March 10

The midterm will be on Friday March 12 during the regular class hours. Lectures 1-7 + X-Ray will go for the

March 5
Assignment 2 has been posted in the Assignments Section.

February 22
I wrote a simple program to evaluate the effectiveness of the hardware prefetcher and found that if you are doing very little computation the hardware prefetcher is not able to hide the latency of the cache misses.

The prefetches did not arrive on-time in the following computation, where A, B and C where declared as floats:
#pragma novector
for (int i = 0; i < size; i++){
C[i] = A[i]+B[i];

However, the prefetches arrived on time on the code below, where I changed the floating point addition by two sqrt() operations, that have a much higher latency.

#pragma novector
for (int i = 0; i < size; i++) {
C[i] = sqrt(A[i])+sqrt(B[i]);

Take this into account when writing your codes for the problem 7 in the assignment, as you may need to slightly modify the examples in the class notes.

February 17
The homework has been posted in the Assignments Section.

The INTEL 64 and IA-32 Architectures Optimization Reference Manual can be found in

January 27
You can find here the Getting Started Guide for the INTEL Vtune tool. This guide has a few examples to to show its used. The CSIL lab, machines CSIL-0216-L11 through CSIL-0216-L51 have INTEL Vtune installed. Information about these machines can be obtained in https://agora.cs.illinois.edu/display/CSIL/Facilities#Facilities-CSIL0216L11throughCSIL0216L51. Also, information about how to connect to the csil linux terminal severs is found in https://agora.cs.illinois.edu/display/CSIL/Connecting+to+CSIL+Linux+Terminal+Servers.

January 19
Welcome to CS 498, Program Optimization. We will meet Wednesdays and Fridays from 11:00 to 12:15 in room 1103 in Siebel Center.

The first day of class will be Wednesday, January 20.

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.