COURSE DESCRIPTION:
Text
No required text. There are readings from research papers and texts on reserve at the Grainger Engineering Library. [List of reserves]
Prerequisites
ECE 313 or equivalent. At least one 400-level or higher course in computer architecture or networks.
Approach
For any given week, slides and lectures for the coming week will be available approximately a week in advance, on the course website. I’ll expect you to have gone over the slides and lectures before the class meets. Class time will be spent on any questions you have about the assigned material, and then focus on in-class problem solving, both with me and Kartik demonstrating solutions, and also you working them. Class attendance and participation is expected.
Overview
ECE 541/CS 541/CSE 524 is a comprehensive introduction to methods for computer system and network analysis. It focuses on methods that are applicable to a wide range of systems and practical uses and implementations of these methods. Broadly speaking, the course is divided into three parts: analytic/numerical modeling, simulation, and measurement. Each of these three approaches to computer system and network analysis has important uses, and will be covered in detail. Using each of these methods, the course will address models for performance, dependability (reliability and availability), security (availability, integrity, confidentiality), survivability, and performability (combined performance/dependability/security) analysis.
In doing so, it will first briefly review stochastic processes, as applied to computer system and network analyses. It will then study dependability-specific methods (fault trees, reliability block diagrams), single queues, networks of queues, and product-form analysis techniques. Finally, it will address techniques based on stochastic Petri nets and stochastic activity networks, which are appropriate for performability analysis. In doing so, it will briefly address numerical issues in the solution of both steady-state and transient models.
The simulation portion will first provide an overview of process and discrete-event-based simulation. It will then address the issues of random variable generation, and issues related to simulator execution: initial transient determination, stopping criteria, statistical issues, and design of experiments. Finally, we will discuss techniques to speed up a simulation, including variance reduction techniques.
The measurement part will cover issues in measurement-based evaluation: the use of benchmarks and their validity. It will also discuss the use of fault injection to estimate the dependability of fault-tolerant systems.
This course is intended to be a fun, interactive introduction to computer system analysis. Hands-on learning, through the use of software tools in homework and projects, will be emphasized. Students from all areas of electrical and computer engineering and computer science, as well as other engineering disciplines, are encouraged to enroll.
Grading Policy
Grades will be assigned based on performance on homeworks, reading reports, 2 projects, a mid-term, and a take-home final. The weight assigned to each component will be as follows:
- Projects, 40% (two at 20% each)
- Homework/Classroom, 20%
- Midterm, 20%
- Final, 20%.
Course Rules
- Reading reports and homeworks must be done individually. General ideas regarding homework may be discussed (this is encouraged), but the work handed in must be your own.
- Projects and the presentation will be done in groups. Students must clearly state their contributions to the project and make individual presentations. Different grades may be assigned to different people in a project.
- All work must be completed during the semester; no incompletes will be given except under extenuating circumstances.
- No late assignments are accepted; all assignments are due at the beginning of class on the due date, or by the time stated, if a specific time is stated.