Optimizing compilers play a critical role in modern computer systems ranging from mobile devices to supercomputers. Compilers can optimize for performance, power consumption and/or code size. Practically all computer scientists and engineers may benefit for a deep knowledge of compiler optimizations: programmers and application optimizers write programs that are better optimized by the compiler, computer designers design hardware features that are easy to use by compilers, and finally compiler writers develop new compiler optimizations. This course covers optimizations and aspects of the compiler back-end and middle-end such as: instruction level parallelism, memory hierarchy optimizations, data level parallelism and thread level parallelism.
Professorat
Responsable
Josep Llosa Espuny (
)
Altres
Josep Ramon Herrero Zaragoza (
)
Marc Gonzàlez Tallada (
)
Hores setmanals
Teoria
4
Problemes
0
Laboratori
0
Aprenentatge dirigit
0
Aprenentatge autònom
5
Competències
Competències Tècniques de cada especialitat
Computació d'altes prestacions
CEE4.2 - Capacitat d'analitzar, avaluar, dissenyar i optimitzar programari considerant l'arquitectura i de proposar noves tècniques d'optimització.
Competències Tècniques Generals
Genèriques
CG2 - Capacitat per a dirigir, planificar i supervisar equips multidisciplinaris.
Competències Transversals
Actitud adequada davant el treball
CTR5 - Tenir motivació per a la realització professional i per a afrontar nous reptes, tenir una visió àmplia de les possibilitats de la carrera professional en l'àmbit de l'enginyeria en informàtica. Sentir-se motivat per la qualitat i la millora contínua, i actuar amb rigor en el desenvolupament professional. Capacitat d'adaptació als canvis organitzatius o tecnològics. Capacitat de treballar en situacions de carència d'informació i/o amb restriccions temporals i/o de recursos.
Bàsiques
CB7 - Que els estudiants siguin capaços d'integrar coneixements i enfrontar-se a la complexitat de formular judicis a partir d'una informació que, essent incomplerta o limitada, inclogui reflexions sobre les responsabilitats socials i ètiques vinculades a l'aplicació dels seus coneixements i judicis.
Objectius
Know the most common machine independent optimizations.
Competències relacionades:
CEE4.2,
Know scheduling techniques and register allocation for exploiting Instruction Level Parallelism
Competències relacionades:
CEE4.2,
Know the most common memory locality optimizations.
Competències relacionades:
CEE4.2,
Learn the concept and compiler techiques for exploiting Data Level Parallelism
Competències relacionades:
CEE4.2,
Compiler techniques and tools for exploiting Thread Level Parallelism
Competències relacionades:
CEE4.2,
Make a technical report on some advanced compiler technique
Competències relacionades:
CEE4.2,
CB7,
CTR5,
Make a presentation so that the other students learn some advanced compiler technique
Competències relacionades:
CG2,
CEE4.2,
CB7,
CTR5,
The classes consist of lectures intermixed with practical exercises and homework. In addition, some advanced topics will be selected by the students on demand. Each student will make a presentation of his selected topic to the rest of the class.
Mètode d'avaluació
The evaluation of this course will take into account three different items
a. A deliverable of a class assignment will account for 40% of the grade
b. The presentation in class of a related topic will account of 40% the grade
c. Attendance and participation in class will account for 20% of the grade.