| Person in charge: | Daniel Jimenez Gonzalez (djimenez |
| Others: | Alejandro Ramirez Bellido (aramirez Eduardo Ayguadé Parra (eduard Enrique Morancho Llena (enricm Jose Ramon Herrero Zaragoza (josepr Teresa Monreal Arnal (teresa |
| Credits | Dept. | Type | Requirements |
|---|---|---|---|
| 7.5 (6.0 ECTS) | AC |
|
SO
- Prerequisite for DIE , DCSFW |
| Person in charge: | Daniel Jimenez Gonzalez (djimenez |
| Others: | Alejandro Ramirez Bellido (aramirez Eduardo Ayguadé Parra (eduard Enrique Morancho Llena (enricm Jose Ramon Herrero Zaragoza (josepr Teresa Monreal Arnal (teresa |
Upon finishing this subject, students should be able to generate code, or optimise existing code to adapt it to the particular characteristics of the architecture it must be executed on, and to make the best use of what resources are available.
Estimated time (hours):
| T | P | L | Alt | Ext. L | Stu | A. time |
| Theory | Problems | Laboratory | Other activities | External Laboratory | Study | Additional time |
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 2,0 | 0 | 4,0 | 0 | 4,0 | 3,0 | 0 | 13,0 | |||
|
Measurement of programme performance. Compilation options. Study of the dynamic behaviour of programmes.
|
||||||||||
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 1,0 | 0 | 8,0 | 0 | 8,0 | 2,0 | 0 | 19,0 | |||
|
Alternatives to some high-cost and/or long latency operations. Substituting complex operations with simpler ones. Memorisation of results. Detection of trivial cases. Use of operating system resources.
|
||||||||||
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 3,0 | 0 | 12,0 | 0 | 12,0 | 4,0 | 0 | 31,0 | |||
|
Jump prediction. Detection and elimination of critical jumps. Inlining. Developing loops.
|
||||||||||
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 2,0 | 0 | 12,0 | 0 | 12,0 | 4,0 | 0 | 30,0 | |||
|
Size and alignment with data. Division of data into blocks that are in keeping with the size of the memory cache. Memory disambiguation.
|
||||||||||
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 2,0 | 0 | 8,0 | 0 | 8,0 | 2,0 | 0 | 20,0 | |||
|
Machine language instructions. Inserting vectorial code in C code.
|
||||||||||
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 3,0 | 0 | 12,0 | 0 | 16,0 | 0 | 0 | 31,0 | |||
|
||||||||||
| Total per kind | T | P | L | Alt | Ext. L | Stu | A. time | Total |
| 14,0 | 0 | 56,0 | 0 | 60,0 | 15,0 | 0 | 145,0 | |
| Avaluation additional hours | 0 | |||||||
| Total work hours for student | 145,0 | |||||||
The course is mainly of a practical nature but is based on theory.
Teacher and students will discuss the theory in class. The teacher will provide bibliographic references and documentation on the subject for discussion. Students will do the preparatory work in their own time. This material will then be discussed in the following theory session.
The practical part of the course will be imparted in the teaching labs, and employ tutored practical assignments. All practical assignments will be held in the lab hours reserved for the purpose. The practical assignments will be tackled in two groups: limited-scope experiments to illustrate particular applications and optimisations, and other assignments in which students will be expected to apply all of the knowledge acquired on the course to optimise a complete application.
To facilitate that the students can compare their
solutions with those of the rest of students, the course
offers a web site where they will be able to send the
solution of determinate exercises.
The web site will be in charge of executing the programs, to check out
their correctness and of sorting the programs
considering their execution time.
Course assessment is based on the following five components:
- Along the course, the students will have to face of a series of exercises.
The answer to some of these exercices is a C program that must be submited to the web site; a submission will be accepted if, before the established deadline, its execution time is inferior to the threshold established by the teacher.
The answer to the remaining exercices is a brief report (1-3 pages) that must be submited to the teacher; he will decide if the report is acceptable.
The acceptance of a minimum of 75% of the proposed exercises will be a necessary condition to be able to pass the subject without having to attend the final examination.
- F: 3 questionnaires (F1, F2 and F3). Along the course, the students will have to answer three questionares administered in the theory sessions. The purpose of these questionnaires is to check whether students have assimilated the code optimisation theory and practice taught until the date.
- In : Submission of a report on the final practical assignment. Students will optimise code for the final practical assessment, using the techniques they have learnt on the course.
- Final : Final exam containing questions on theory and practical cases.
- Challenge: Moreover, we will propose an extra exercise to be submited to the web site. The students who submit the 10 faster solutions will see its final note increased in 1 point (faster solution), 0.9 points (second faster solution)... and 0.1 points (tenth faster solution) respectively.
"Fm" being the average of "Fi" grades.
There are two ways of passing the course:
If Fm >= 5 and >= 75% accepted exercices:
Final Grade = 0.60 * Fm + 0.40 * En + Challenge
Otherwise:
Final Grade = 0.60 * Final + 0.4 * En + Challenge
In other words, the course can be passed without having to take the final exam.
Knowledge of computer architecture: memory hierarchies and machine language. (courses EC1 and EC2)
Knowledge of programming in "C". (EC1 and EC2)
Knowledge of UNIX at the user level. (OS)