Logo UAB

Performance Engineering

Code: 104341 ECTS Credits: 6
2024/2025
Degree Type Year
2503758 Data Engineering OB 2

Contact

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

Teachers

Juan Carlos Moure Lopez
Manuel Montoto González

Teaching groups languages

You can view this information at the end of this 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 and Contextualisation

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.


Competences

  • Design efficient algorithmic solutions to computational problems, implement them in the form of robust software developments which are structured and easy to maintain, and verify their validity.
  • Make a critical evaluation of work carried out.
  • Plan and manage the available time and resources.
  • Search, select and manage information and knowledge responsibly.
  • 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.

Learning Outcomes

  1. Analyse applications' performance, detect bottlenecks and apply possible optimisations.
  2. Apply the basic principles of computer structure and programming.
  3. Implement medium-difficulty algorithmic problems in a programming language.
  4. Make a critical evaluation of work carried out.
  5. Plan and manage the available time and resources.
  6. Search, select and manage information and knowledge responsibly.
  7. 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.

Content

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.


Activities and Methodology

Title Hours ECTS Learning Outcomes
Type: Directed      
Resolution of practical problems in the laboratory 26 1.04 1, 2, 3, 4, 5
Theory classes 26 1.04 6, 7
Type: Supervised      
Performance Optimization of code snippets 26 1.04 1, 2, 3, 4, 5, 6
Type: Autonomous      
Autonomous study 30 1.2 5, 6
Previous preparation and documentation of work in the laboratory 40 1.6 1, 4, 5, 6, 7

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

Continous Assessment Activities

Title Weighting Hours ECTS Learning Outcomes
Group work for solving practical problems in the laboratory + Answers + Reports 50% 0 0 1, 2, 3, 5, 6, 7
Individual report on the resolution of practical problems in the laboratory 15% 0 0 1, 4, 6, 7
Individual written examination of theory and problems 35% 2 0.08 1, 4, 7

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.

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: delivery of a written report of activity A; done individually; 15% 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; 35% 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 activity C is performed 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 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.

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


Language list

Name Group Language Semester Turn
(PAUL) Classroom practices 1 Catalan/Spanish first semester morning-mixed
(PAUL) Classroom practices 2 Catalan/Spanish first semester morning-mixed
(PLAB) Practical laboratories 811 Catalan/Spanish first semester morning-mixed
(PLAB) Practical laboratories 812 Catalan/Spanish first semester morning-mixed
(PLAB) Practical laboratories 813 Catalan/Spanish first semester morning-mixed
(PLAB) Practical laboratories 814 Catalan/Spanish first semester morning-mixed
(TE) Theory 81 Catalan/Spanish first semester morning-mixed