Official course description:

Full info last published 15/11-23
Course info
Language:
English
ECTS points:
7.5
Course code:
KSCOSYP1KU
Participants max:
45
Offered to guest students:
yes
Offered to exchange students:
yes
Offered as a single subject:
yes
Price for EU/EEA citizens (Single Subject):
10625 DKK
Programme
Level:
MSc. Master
Programme:
MSc in Computer Science
Staff
Course manager
Associate Professor
Course semester
Semester
Forår 2024
Start
29 January 2024
End
23 August 2024
Exam
Exam type
ordinær
Internal/External
ekstern censur
Grade Scale
7-trinsskala
Exam Language
GB
Abstract

In this course, you will learn how to analyze and improve the performance of a computer system with a specific focus on data-intensive systems.

To investigate a system’s performance and come up with solutions to improve it, there are three key things to know.

  1. How to devise a methodology to design experiments so that you can investigate the system’s performance,
  2. The toolset to run the necessary experiments and collect the results, and
  3. At least a basic understanding of the systems layers (hardware, operating systems, etc.) to be able to interpret your results and come up with solutions.

This is what we will cover in this course.

Description

In this class, students will learn how to design and conduct performance analysis experiments and how to troubleshoot existing complex data-intensive systems.

We live in a world that requires near-instant response times and increasingly faster access to very large volumes of business-critical data. Data scientists expect high-performance from their data systems in order to reduce time to insight. Software and DevOps engineers are expected to continuously improve the performance of IT systems.

Sub-optimal performance means that you are paying a higher cost for something than you should. This cost could be money, time, energy, carbon footprint …, and usually these costs are all inter-linked.

To achieve sustainable management and growth of data-intensive systems (e.g., database management systems, big data processing systems, machine learning systems), we must utilize the available computer systems resources (e.g., hardware) well and avoid sub-optimal performance.

Performance analysis of computer systems can
(1) uncover the effects of design or implementation bugs leading to such sub-optimal performance and
(
2) help characterize the needs and behavior of different types of systems helping us target more effective performance optimizations.

This is what we will be learning in this course.



Formal prerequisites

It would be good for the students to have taken introductory courses on database systems and operating systems, or something similar. Similarly, having some familiarity with command line interface and C/CPP would help.


Intended learning outcomes

After the course, the student should be able to:

  • Design and conduct performance evaluation experiments
  • Formulate hypothesis about the causes of poor performance across different layers of a data system’s stack (i.e., data management components, operating system, file system, network, hardware).
  • Select appropriate set of tools for troubleshooting performance problems.
  • Analyze the performance of a complex real-world data system.
Learning activities

The course is composed of lectures and exercise sessions. The lectures will cover fundamental aspects of various systems components such as operating systems, storage systems, processors, data systems, etc. The exercises will introduce tools and methodology for troubleshooting and performance analysis. Students will also work on two project assignments during the semester in 2-3 person groups. They will be doing in-class presentations on these assignments as well.

Course literature

The relevant literature will be provided on LearnIT every week.

Student Activity Budget
Estimated distribution of learning activities for the typical student
  • Preparation for lectures and exercises: 10%
  • Lectures: 25%
  • Exercises: 25%
  • Project work, supervision included: 30%
  • Exam with preparation: 10%
Ordinary exam
Exam type:
D: Submission of written work with following oral, External (7-point scale)
Exam variation:
D2G: Submission for groups with following oral exam supplemented by the submission. Shared responsibility for the report.
Exam submission description:
Students submit a report based on the two project assignments. This report is submitted for the exam.
Group submission:
Group
  • Group size 2-3 persons
Exam duration per student for the oral exam:
20 minutes
Group exam form:
Individual exam : Individual student presentation followed by an individual dialogue. The student is examined while the rest of the group is outside the room.


reexam
Exam type:
D: Submission of written work with following oral, External (7-point scale)
Exam variation:
D22: Submission with following oral exam supplemented by the submission.
Exam duration per student for the oral exam:
20 minutes

Time and date
Ordinary Exam - submission Wed, 22 May 2024, 08:00 - 14:00
Ordinary Exam Wed, 19 June 2024, 09:00 - 21:00
Ordinary Exam Thu, 20 June 2024, 09:00 - 21:00
Reexam - submission Wed, 24 July 2024, 08:00 - 14:00
Reexam Thu, 15 Aug 2024, 09:00 - 13:00