The goal of this Lab is to:
1) gain experience in designing experiments that measure the performance of complex software systems,
2) process and analyze the results,
3) build models that describe the behavior of the system.

The experimental results and the models will be used to determine the components of the system that are the bottleneck for performance.

The skills acquired in the Lab shall be relevant to a wide variety of career paths: students who will later pursue a PhD in Systems topics, Data Scientists who will have to work with large distributed processing pipelines, Software Engineers and DevOps who will have to work on improving the performance of IT systems.

To achieve the above goals, we will, on the one hand, review the relevant theory (e.g., Statistical methods, Little's Law, Queuing Theory) and, on the other hand, implement a data processing application that will then be benchmarked and modeled in detail.

The Lab concludes with short project presentations, in which students will demonstrate that they have understood the behavior of their implementation and are able to provide ideas for removing bottlenecks based on the experimental data and the models they have built.

Textbook (will provide excerpts):
R. Jain, "The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling," Wiley- Interscience, New York, NY, April 1991, ISBN:0471503361