Logo

Performance Engineering

Code: 104341
Credits: 6
2026/2027
Degree programme Type Course
Data Engineering OB 2

Contact lecturer

Name :
Juan Carlos Moure Lopez
Email :
juancarlos.moure@uab.cat

Teaching staff

Jordi Alcaraz Rodriguez
Oscar Lostes Cazorla

Group languages

You can consult this information at the end of the document.

Prerequisites

It is highly recommended to have studied and passed the subjects of Fundamentals of Computer Science, Fundamentals of Programming and Advanced Programming

Objectives

1. Evaluate and analyze the performance of the execution of a program.
2. Understand the conversion from the source language (Python / C) to the assembler, identifying the transformations in the code.
3. Determine the data dependencies in the execution loops of the programs and use strategies to increase the parallelism at the level of instructions and data.
4. Understand the functioning of the memory hierarchy and use strategies to increase the locality of data accesses.

Learning outcomes

  1. Search, select and manage information and knowledge responsibly.
  2. Students must have and understand knowledge of an area of study built on the basis of general secondary education, and while it relies on some advanced textbooks it also includes some aspects coming from the forefront of its field of study.
  3. Make a critical evaluation of work carried out.
  4. Plan and manage the available time and resources.
  5. Apply the basic principles of computer structure and programming.
  6. Implement medium-difficulty algorithmic problems in a programming language.
  7. Analyse applications' performance, detect bottlenecks and apply possible optimisations.

Contents

1. Performance Evaluation: tools to monitor and instrument the execution of a program.

2. Performance Analysis: computational complexity, factors determined by the processor architecture, and performance metrics.

3. Parallelism in the execution of Instructions: Pipeline and Vectorization.

4. Analysis of data dependencies in the execution loops.

5. Memory Hierarchy and Locality of data accesses: effect on performance.

6. Algorithmic optimization strategies: increase the parallelism and the locality of data accesses.


Learning activities and methodology

Title Hours ECTS Learning outcomes
Previous preparation and documentation of work in the laboratory 40 1.6
Theory classes 26 1.04
Autonomous study 30 1.2
Performance Optimization of code snippets 26 1.04
Resolution of practical problems in the laboratory 26 1.04

Theory classes: the knowledge of the subject will be explained. The basic concepts will be described and illustrated with practical examples. The most important learning problems will be highlighted and will show how to complete and deepen the contents. Practical cases will be discussed and the teacher will detect the most common comprehension and reasoning problems and solve them for all students.

Classes of Problems in Laboratory: cooperative activities of resolution of problems and of simple practical cases will be made, that will serve as support to the theory. After a previous individual work, the students will make a group sharing and solve their doubts. The teacher will detect the most common comprehension and reasoning problems and solve them in groups or for all students. The student's analysis and synthesis capacity, critical reasoning and problem-solving ability are promoted. During the session, the students should inform the teacher about their progress and the problems that may be encountered, and they will deliver a final document with the results and reflections on their activities.

Optimization Problems: throughout the course, exercises will be proposed to transform small pieces of code so that they run in less time. Students should apply the knowledge, methodologies and strategies learned and present the result by arguing the reasons for performance improvements. Students are expected to be proactive and dynamic, and to autonomously search for the necessary knowledge.

Annotation: within the schedule set by the centre or degree programme, 15 minutes of one class will be reserved for students to evaluate their lecturers and their courses or modules through questionnaires.

Assessment

Continuous assessment activities

Title Weight Hours ECTS Learning outcomes
Individual written examination of theory and problems 40% 2 0.08 3, 7
Group work for solving practical problems in the laboratory + Answers + Reports 50% 0 0 1, 4, 5, 6, 7
Individual written assessment reflecting on the practical laboratory work 10% 0 0 2, 3

The dates for continuous evaluation and submission of works will be published on the Moodle platform of the UAB (Virtual Campus) and may be subject to programming changes for reasons of adaptation to possible incidents. Always be informed on the Moodle platform about these changes, as it is understood that it is the usual platform for exchanging information between teacher and students. Should it be neessary, a request may be made to reschedule assessment activities in accordance with the protocol set by the Engineering School. Should the teaching staff have doubts about the authorship of any assessment test, they may, if they deem it appropriate, conduct an oral interview to verify it.

Evaluation Activities

Activity A: solving practical problems in the laboratory; done as a group; 50% of the final grade; minimum score of 5 points out of 10; cannot be recovered

Activity B: written examination reflecting on activity A; done individually; 10% of the final grade; not necessary a minimum grade; can be recovered

Activity C: written examination of theory and problems; done individually and without notes; 40% of the final grade; minimum score of 5 points out of 10; can be recovered

Apart from the evaluation activities described above, during the course it will be possible to propose other voluntary activities that can contribute to the final qualification of the course

Program of Evaluation Activities

Activity A is carried out throughout the course. Activities B and C are carried out at the end of the course and on the dates specified by the coordination.

Recovery Process

The student can present himself to the recovery whenever he/she has submitted to the activities A, B and C. Activities B and C can be recovered, and they represent 50% of the final grade.

Review procedure

All evaluation activities can be reviewed in a place, date and time that will be published beforehand. Claims may be made on the activity grade, which will be evaluated by the faculty responsible for the subject. If the student does not show up for this revision, this activity will not be reviewed later.

Qualifications

An honor grade (MH) will be awarded to students who reach a final grade equal to or greater than 9.00, up to a total of 5% of the students enrolled, prioritizing the part of the grade that corresponds to individual assessments (activities B and C).

If the student does not reach the minimum grade in any of the evaluation activities, the final numerical grade will be the minimum between 4.5 points and the weighted sum of the grades of all the activities.

A student will be considered non-assessable (NA) if he / she has not submitted to any of activities B and C.

Irregularities by students, copy and plagiarism

Without prejudice to other disciplinary measures deemed appropriate, will be scored with a zero the irregularities committed by a student that may lead to a variation of the rating of an act of evaluation. Therefore, copying, plagiarism, cheating, letting copy, unauthorized use of IA (i.e., Copilot, ChatGPT or equivalents), etc. in any of the evaluation activities will involve suspending it with a zero. The evaluation activities qualified in this way and by this procedure will not be recoverable. If it is necessary to pass any of these assessment activities to pass the subject, then this subject will be suspended directly, with no opportunity to recover it in the same course. In the case of not passing the subject due to the fact that the student has committed irregularities in an evaluation act, the numerical note of the record will be the lower value between 3.0 and the weighted average of the marks (and therefore the approved by compensation will not be possible).

Evaluation of repeating students

There is no special treatment for repeating students.

Use of IA

In this course, the use of Artificial Intelligence (AI) technologies is permitted as an integral part of the assignment development, provided that the final outcome reflects the student’s significant contribution through personal analysis and reflection. The student must clearly identify which parts were generated using AI, specify the tools employed, and include a critical reflection on how these tools influenced the process and final outcome of the activity. Failure to disclose the use of AI will be considered academic dishonesty and may result in a grade penalty for the assignment or more severe sanctions in serious cases.

Unique Assessment

This course does not contemplate the single evaluation system

Bibliography

Computer Architecture: A Quantitative Approach. 6th Edition

Enllaç: https://bibcercador.uab.cat/permalink/34CSUC_UAB/avjcib/alma991008741339706709

John Hennessy and David Patterson, Morgan Kaufmann (Elsevier) 2019 (Cap. 1-3)


Computer Systems: A Programmer's Perspective. 3rd Edition (North-American) (https://csuc-uab.primo.exlibrisgroup.com/permalink/34CSUC_UAB/avjcib/alma991006392489706709)

Randall E. Bryant and David R. O'Hallaron, Addison Wesley, 2015 (Cap. 5 i 6)


Computer Organization and Design RISC-V Edition: The Hardware/Software Interface.

David Patterson and John Hennessy, Morgan Kauffman (Elsevier), 2017 (Cap. 4 i 5)


High Performance Python: practical performant programming for human.

Micha Gorelick and Ian Ozsvald, O’Reilly, 2014


Cython: a guide for Python programmers.

Kurt W. Smith, O’Reilly, 2015


Python High Performance programming. Boost the performance of your Python programs using advanced techniques

Gabriele Lanaro, Packt Publishing, 2013

Software

None

Course groups and languages

The information provided is provisional until November 30. After this date, you will be able to consult the language of each group through this link. To access the information, you will need to enter the course CODE

Type of teaching Group Language Semester Shift
(PAUL) Classroom practices 1 Catalan/Spanish first semester morning-mixed
(PAUL) Classroom practices 2 Catalan/Spanish first semester morning-mixed
(TE) Theory 81 Catalan/Spanish first semester morning-mixed