CS681/CS 462: Performance Evaluation of Computer Systems and Networks

Spring Semester 2012 - 13


Sign up for Piazza

 

Semester Lecture Plan


Course Information

Instructor : Varsha Apte;, CSE, IITB( varsha@cse.iitb.ac.in, IIT Extn : 7731)

Office Hours : Any time I am in office and free. My office is A-408 (KR Building, 4th floor). Check my schedule before coming to meet me.

Evaluation Scheme : For CS 681: 30% End Sem, 25% Midsem, 20% simulation programming project, 20% quizes (two), 5% participation.
For CS 462: 40% End Sem,  25% Midsem,  10% simulation 
programming assignment, 20% quizes, 5% participation. 

Prerequisites

Undergraduate level background in  Operating Systems and Computer Networks, and Probability and Statistics. Basic implementation skills in a programming language, and scripting language.

Who can take this course?

The CS 681 course is for Post-graduate students (M.Tech., M.S., Ph.D.), and DD students. The CS 462 course is a Btech4 elective.

Requirements for students auditing: project not required, homeworks not required. Evaluation is based on End-sem (60%), Mid-sem (40%), or End-sem (50%), simulation project (50%). Nearly 100% attendance is required for auditing students.

I am generally open to research scholars/project staff or anybody who wants to "sit in" through the course. However, I will not evaluate them. (Please just inform me if you are going to audit or sit-in.)

Course Description

This course is a first course on performance evaluation covering the basics of three main evaluation techniques: Measurement, Simulation, and Analytical Modeling. The main focus will be analytical modeling - probability models, Markov models, Queueing models. The course will involve extensive use of mathematical skills. There will be a simulation programming assignment, which involve programming and data crunching using a scripting language (e.g. python or awk). The mathematics needed is a basic knowledge of Probability and Statistics. A brief refresher in probability will be done (combination of self-study+lectures) initially.

The course is about evaluating computer systems and networks, so knowing about systems (operating systems) and networks is useful. In case of networks, while knowledge of minute details of data networking protocols is not required, you must be familiar with the essential behaviour of the protocol.  Protocol will be introduced briefly, then analyzed, but even then, you should have read it at least once before it is analyzed in class. In case of systems, familiarity with basic OS mechanisms (e.g. paging, CPU scheduling etc) will be assumed. These will not be explained in class. This year, we will be include examples from virtualization and cloud computing to illustrate basic performance concepts. 

To sum it up, to do this course you should like to model systems by deriving and solving mathematical equations, as well as learning about various phenomena empirically (with measurement and simulation experiments).

Course contents

  • Introduction to Probability Refresher
    • Conditional probability
    • Total probability
    • Discrete and Continous Random variables
    • Common distributions
    • Probability Generating Functions(PGF) and Laplace Transforms(LST)
    • Numerous examples from computer networking
  • Stochastic processes
  • Discrete time Markov chains (DTMC)
  • Continous time Markov chains (CTMC)
  • Queueing systems (M/M/1, M/M/c/k, M/G/1)
  • Queueing networks
  • Statistical analysis of simulations

 

These analysis techniques will be illustrated using the following and more examples:

  • Sliding Window Protocol analysis
  • Pure & Slotted Aloha analysis
  • TCP/IP analysis
  • Web server analysis
  • Circuit telephony analysis
  • Direct packet data link analysis
  • TDMA/FDMA analysis
  • Paging analysis
  • Program behaviour analysis
  • Distributed system analysis
  • VM performance analysis