Politecnico di Milano — Performance Evaluation and Application — AY 2024–2025
Set of 16 assignments covering core performance-evaluation topics. Computations and simulations are implemented in Python (NumPy, Matplotlib). The last two assignments use a Java-based modeling tool.
Deliverables:
- Assignment reports
- Python sources
- Java modeling projects
- Analyze system models and derive analytical solutions when feasible.
- Build discrete-event simulations to validate/compare with analytics.
- Produce plots/tables and interpret results against the problem statement.
- Report assumptions, parameters, and confidence of estimates.
- Performance evaluation basics: response time, throughput, utilization, confidence intervals, distributions, blocking, availability, reliability.
- Measurement practice: collect, clean, and interpret performance data to support model assumptions.
- Workload & service characterization: fit probability distributions; synthesize random traces from estimates.
- Analytical modeling: single service centers with multi-server and finite capacity; general inter-arrival/service times.
- Discrete-event simulation: build/validate simulators; handle multi-class workloads, fork/join, finite capacity, and adaptive policies.
- Resource contention modeling: use Petri Nets and related formalisms to capture synchronization and bottlenecks.
- JMT proficiency: model systems in Java Modelling Tool and interpret results alongside Python analyses.
- Modern architectures: reason about parallelism, resource sharing, dynamic allocation, centralized vs. distributed components, and high variability.
- Optimization mindset: use models to predict behavior and guide tuning for performance/energy trade-offs.
- Learning through applications: apply methods to case studies (e-health, cloud/autoscaling data centers, energy reduction, ML pipelines, smart cities).
This project is licensed under the Apache License 2.0.