SOFTWARE PERFORMANCE AND SCALABILITY

Academic year
2023/2024 Syllabus of previous years
Official course title
SOFTWARE PERFORMANCE AND SCALABILITY
Course code
CM0481 (AF:451576 AR:245304)
Modality
On campus classes
ECTS credits
6
Degree level
Master's Degree Programme (DM270)
Educational sector code
INF/01
Period
2nd Semester
Course year
1
Where
VENEZIA
Moodle
Go to Moodle page
The student will learn advanced techniques on mathematical and computational optimisation, the fundamental knowledge for the design of software and systems for handling and operating with big data.
The student will know the fundamental aspects to be considered in the design of software with performance and scalability requirements.
At the end of the course, the student will be able to:
- identify the main performance patterns in a system: bottlenecks, congestion collapse, hidden congestion collapse, side effects of competition
- program a professional benchmarking tool and perform the experiments to assess the performance indices
- interpret the outcomes of a benchmark correctly
- model a software architecture by means of a queueing system or a queueing network
- indentify the bottlenecks and bounds for the performance indices in systems that consist of more components modelled by means of queueing networks
- compute the average performance indices in complex systems modelled by means of queueing networks
Basics of statistics and probability
- discrete and continuous random variables
- Markov processes

Server side programming in any language

Relational databases
Introduction to Performance Evaluation
- Performance patterns
- Performance indices
- Methodologies for the performance evaluation

Introduction to software/hardware architectures
- classification of the parallelism in processors (hyper threading, multi core, multi processor) and impact on the software performance
- RAID systems and their impact on the performance of software
- networks and impact on the performance
- review of software architectures

Benchmarking
- Design of a benchmarking experiment
- Benchmarking in open and closed loop
- Confidence intervals

Single queueing systems
- Kendall’s notation
- Little’s law
- M/M/1, M/M/m, M/M/Infinity queues. Erlang’s Formulas
- M/G/1 queues

Queueing networks
- Operational analysis
- Jackson’s queueing networks
- Gordon Newell’s queueing networks: convolution algorithms and Mean Value Analysis
- BCMP Queueing networks
- Using Java Modelling Tool (JMT) for the performance evaluation of queueing networks

Introduction to profiling of software

Case study: performance of applications based on bitcoin/blockchain
Henry H. Liu: Software performance and scalability. A quantitative approach. Wiley. 2009
Mor Harchol-Balter : Performance Modeling and Design of Computer Systems: Queueing Theory in Action. Cambridge press 2021
The exam can be given in two ways:
1) A written exam and an oral interview. The written exam consists of open questions on the course topics and exercises. The oral interview will be essentially a discussion of the written exam.
2) Two lab assignments and an oral examination. The oral examination consists in the discussion of the lab assignments and questions about the topics of the course.
Laboratory and frontal lessons
English
written and oral
Definitive programme.
Last update of the programme: 16/03/2023