| Responsable: | Daniel Jimenez Gonzalez (djimenez |
| Otros: | Alejandro Ramirez Bellido (aramirez Eduardo Ayguadé Parra (eduard Enrique Morancho Llena (enricm Jose Ramon Herrero Zaragoza (josepr Teresa Monreal Arnal (teresa |
| Créditos | Dept. | Tipo | Requisitos |
|---|---|---|---|
| 7.5 (6.0 ECTS) | AC |
|
SO
- Prerequisito para la EI , ETIS |
| Responsable: | Daniel Jimenez Gonzalez (djimenez |
| Otros: | Alejandro Ramirez Bellido (aramirez Eduardo Ayguadé Parra (eduard Enrique Morancho Llena (enricm Jose Ramon Herrero Zaragoza (josepr Teresa Monreal Arnal (teresa |
El estudiante será capaz de generar código, u optimizar código ya existente, para adaptarlo a las características particulares de la arquitectura en que se deba ejecutar y aprovechar mejor los recursos disponibles.
Horas estimadas de:
| T | P | L | Alt | L Ext. | Est | O. Ext. |
| Teoria | Problemas | Laboratorio | Otras actividades | Laboratorio externo | Estudio | Otras horas fuera del horario fijado |
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 2,0 | 0 | 4,0 | 0 | 4,0 | 3,0 | 0 | 13,0 | |||
|
Medida del rendimiento de los programas. Opciones de compilación. Estudio del comportamiento dinámico de los programas.
|
||||||||||
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 1,0 | 0 | 8,0 | 0 | 8,0 | 2,0 | 0 | 19,0 | |||
|
Alternativas a algunas operaciones de coste de ejecución elevado y/o larga latencia. Sustitución de operaciones complejas por operaciones más sencillas. Memorización de resultados. Detección de casos triviales. Uso de los recursos del sistema operativo.
|
||||||||||
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 3,0 | 0 | 12,0 | 0 | 12,0 | 4,0 | 0 | 31,0 | |||
|
Predicción de saltos. Detección y eliminación de saltos críticos. Inlining. Desenrollado de bucles.
|
||||||||||
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 2,0 | 0 | 12,0 | 0 | 12,0 | 4,0 | 0 | 30,0 | |||
|
Tamaño y alineación de datos. División de los datos en bloques de tamaño proporcional a la memoria cache. Desambiguación de memoria.
|
||||||||||
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 2,0 | 0 | 8,0 | 0 | 8,0 | 2,0 | 0 | 20,0 | |||
|
Instrucciones del lenguaje máquina. Inserción de código vectorial en código C.
|
||||||||||
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 3,0 | 0 | 12,0 | 0 | 16,0 | 0 | 0 | 31,0 | |||
|
||||||||||
| Total por tipo | T | P | L | Alt | L Ext. | Est | O. Ext. | Total |
| 14,0 | 0 | 56,0 | 0 | 60,0 | 15,0 | 0 | 145,0 | |
| Horas adicionales dedicadas a la evaluación | 0 | |||||||
| Total horas de trabajo para el estudiante | 145,0 | |||||||
La asignatura tiene una vertiente mayormente práctica, apoyada sobre una base teórica.
La base teórica se desarrollará en clases de discusión entre el profesor y los alumnos. El profesor proporcionará referencias bibliográficas y documentación sobre el tema a discutir, que deberá ser trabajado por los alumnos fuera de horas de clase. Este material será discutido en la siguiente sesión de teoría.
La vertiente práctica de la asignatura se desarrollará en los laboratorios docentes, mediante la realización de un conjunto de prácticas tuteladas. La realización de estas prácticas se hará íntegramente en las horas de laboratorio asignadas.
Las prácticas se dividirán en dos grupos: experimentos de alcance limitado para ilustrar aplicaciones y optimizaciones determinadas, y otras en que hará falta aplicar todos los conocimientos adquiridos para optimizar una aplicación cumplida.
Para facilitar que los alumnos puedan comparar sus soluciones con las del resto de alumnos de la asignatura, la asignatura ofrece un portal web donde los alumnos podrán enviar la solución de determinados ejercicios de la asignatura.
El portal se encargará de ejecutar los programas, comprobar su corrección y de ordenar los programas presentados por los alumnos considerando el tiempo de ejecución.
La evaluación de esta asignatura tiene 5 componentes:
- A lo largo del curso se propondrán una serie de ejercicios que los alumnos deberán resolver.
La respuesta a algunos ejercicios será un programa C que deberá ser enviado a un portal web; Se considerará que el alumno ha realizado satisfactoriamente un ejercicio si, antes de la fecha límite establecida, ha enviado una solución correcta que tenga un tiempo de ejecución inferior al umbral establecido por el profesor.
La respuesta al resto de ejercicios será un breve informe (entre 1 y 3 páginas) que deberá ser enviado al profesor. Él decidirá si el informe es aceptable.
La realización satisfactoria de un mínimo del 75% de los ejercicios propuestos será condición necesaria para poder aprobar la asignatura sin tener que presentarse al examen final.
- F: 3 cuestionarios finales (F1, F2 y F3). A lo largo del curso, los alumnos deberán contestar tres cuestionarios en las horas de teoría. E Su objetivo es evaluar si el/la alumno/a ha conseguido asimilar la optimizaciones de código explicadas hasta la fecha.
- En : Entrega de una memoria de la práctica final. La práctica final será un código que los/las alumnos/as han de optimizar aplicando las técnicas aprendidas durante el curso.
- Final : Examen final donde se preguntarán casos prácticos y teóricos.
- Challenge: Además, se propondrá un ejercicio a entregar mediante el portal donde se premiarán las soluciones más rápidas. Los alumnos que presenten las 10 soluciones más rápidas verán incrementada su nota final en 1 punto
(solución más rápida), 0.9 puntos (segunda solución más rápida) ... i 0.1
puntos (décima solución más rápida) respectivamente.
Siendo Fm la media de los Fi.
La asignatura se puede aprobar de dos formas:
Si Fm >= 5 y >=75% ejercicios aceptados
Nota Final = 0.60 * Fm + 0.40 * En + Challenge
En caso contrario:
Nota Final = 0.60 * Final + 0.4 * En + Challenge
Es decir, la asignatura se puede aprobar sin realizar el examen final.
Conocimientos de arquitectura de computadores: jerarquías de memoria y lenguaje máquina. (Asignaturas EC1 y EC2)
Conocimientos de programación en C. (EC1 y EC2)
Conocimientos de UNIX a nivel de usuario. (SO)