counter stats

(CS 286a) Performance Modeling

Announcements

Time/Location

NEW TIME: Monday and Wednesday, 10:30-11:50am, 306 Thomas

Instructor

Adam Wierman, 258 Jorg
Office Hours: It's a small class so feel free to stop by whenever, send me an email first if you want to make sure I'm around.

Course Description

When designing a new computer architecture, network protocol, distributed system, etc. it is essential to be able to quantify the performance impacts of design choices along the way. For example, should we invest in more buffer space or a faster processor? One fast disk or multiple slower disks? How should requests be scheduled? What migration policy will work best? Ideally, one would like to make these choices before investing the time and money to build a system. This class will teach students how to answer this type of "what if" question by introducing students to analytic performance modeling, the tools necessary for rigorous system design.

The course will focus on the mathematical tools, so it should be interesting and accessing both for Computer Science students and for students in Electrical Engineering, Applied Mathematics, Economics, and Operations Research.

The course will be packed with open research questions that are both interesting mathematically and important to computer system design today.

The topics covered will include:


This course is targeted for graduate students and advanced undergraduates. Students should have a strong background in probability.

Textbook

There is no required textbook. I will pass out course notes and supplementary handouts at the end of each class. Some good reference texts are listed here.

Grading

This breakdown will likely change during the course.
In particular, we may have only 1 exam.

Lectures

Since this is the first year of the course and I'm making all the lectures from scratch, I likely won't be able to latex up the notes in time and will instead be putting up my handwritten notes. I'll try to keep them legible!

Assignments

Homeworks will be assigned every 1-2 weeks. Some of the problems will be challenging, so please start early. Most assignments will be primarily proofs, however there will be an occasional problem that requires you to build a simulator and/or do numeric experiments. I assume that you can code and use Matlab/Mathematica.

Collaboration vs. cheating

You will receive one homework every week or so. These will typically require a significant amount of work, and you should start immediately and come to office hours to discuss questions. Please do not search the web for help on the homework problems. It is difficult to develop good homework problems, and thus you may come across similar problems if you search the web for help.

You are strongly encouraged to collaborate with your classmates on these problems, but each person must write up the final solutions individually. You should note on your homework specifically which problems were a collaborative effort and with whom.

Course topics

This outline is overly ambitious and will likely guide us through 2 terms not just one!

Relevant reference books and online notes


Online lecture notes


Books on stochastic processes and queueing


Books on Scheduling


Books on Performance Modeling


Books on Probability and Statistics