
Performance Engineering
Code: 104341Credits: 6
| 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
- 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.
- Make a critical evaluation of work carried out.
- Plan and manage the available time and resources.
- Apply the basic principles of computer structure and programming.
- Implement medium-difficulty algorithmic problems in a programming language.
- 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.
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 |