Responsable: | (-) |
Otros: | (-) |
Créditos | Dept. | Tipo | Requisitos |
---|---|---|---|
7.5 (6.0 ECTS) | AC |
|
SO
- Prerequisito para la EI , ETIS |
Responsable: | (-) |
Otros: | (-) |
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 | ||
---|---|---|---|---|---|---|---|---|---|---|
1,0 | 0 | 7,0 | 0 | 2,0 | 4,0 | 0 | 14,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 | ||
---|---|---|---|---|---|---|---|---|---|---|
2,0 | 0 | 6,0 | 0 | 6,0 | 3,0 | 0 | 17,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 | ||
---|---|---|---|---|---|---|---|---|---|---|
2,0 | 0 | 8,0 | 0 | 10,0 | 5,0 | 0 | 25,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 | 3,0 | 0 | 21,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 | ||
---|---|---|---|---|---|---|---|---|---|---|
1,0 | 0 | 8,0 | 0 | 16,0 | 0 | 0 | 25,0 | |||
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
1,0 | 0 | 4,0 | 0 | 4,0 | 3,0 | 0 | 12,0 | |||
Programación usando más de un thread con tal de aprovechar los actuales procesadores multicore, pero también, algunos unicore en algunos casos.
|
Total por tipo | T | P | L | Alt | L Ext. | Est | O. Ext. | Total |
12,0 | 0 | 53,0 | 0 | 58,0 | 22,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. Estos entregables contribuyen con un factor de seguimiento (fs) a la nota de examenes, dependiendo del % de ejercicios entregados satisfactoriamente y de la evaluación/supervisión que haga el/la profesor/a de TODOS los ejercicios que se tienen que solucionar de los laboratorios de cada tema.
Así, fs = max(0.8*((ejercicios aceptados/total) - 0.75),0) + 1.0, con las correcciones oportunas dependiendo de la evaluación/supervisión que el/la profesor/a haga de TODOS los ejercicios del documento del laboratorio (normalmente en las clases de laboratorio). Estas correcciones nunca haran que fs sea más pequeño que 1.0.
- Fm: 2 cuestionarios finales (F1 (35% de Fm) y F2 (65% de Fm)). A lo largo del curso, los alumnos deberán contestar dos cuestionarios en las horas de teoría. 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=(0.35*F1+0.65*F2), y fs el factor de seguimiento.
La asignatura se puede aprobar de dos formas:
Si Fm >= 5 y >=75% ejercicios aceptados
NEx = MAX(Fm, Final)
En caso contrario:
NEx = Final
Por lo que la nota final queda como:
Nota Final = MIN(0.60 * NEx * fs+ 0.40 * En + Challenge, 10)
Es decir, la asignatura se puede aprobar sin realizar el examen final. Y en cualquier caso, el trabajo realizado durante las clases de laboratorio podrá ayudar a la nota final gracias al factor de seguimiento fs.
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)