Competencias do título |
Código
|
Competencias / Resultados do título
|
A1 |
Aprender de maneira autónoma novos coñecementos e técnicas avanzadas axeitadas para a investigación, o deseño e o desenvolvemento de sistemas e servizos informáticos. |
A2 |
Concibir e desenvolver novas arquitecturas de computación, en especial para sistemas multiprocesadores, analizando e adaptando diversas alternativas tecnolóxicas a cada problema concreto. |
A3 |
Concibir e planificar o desenvolvemento de aplicacións informáticas complexas ou con requisitos especiais. |
A4 |
Coñecer e aplicar diferentes protocolos de comunicación e sistemas de xestión de rede. |
A6 |
Avaliar, definir, seleccionar e auditar plataformas hardware e software para a execución e desenvolvemento de aplicacións e servizos informáticos. |
A8 |
Concibir, despregar, organizar e xestionar un servizo informático complexo. |
B2 |
Resolver problemas de forma efectiva. |
B3 |
Aplicar un pensamento crítico, lóxico e creativo. |
B5 |
Traballar de forma colaborativa. |
B8 |
Traballar en equipos de carácter interdisciplinar. |
B9 |
Capacidade para tomar decisións. |
B11 |
Razoamento crítico. |
B12 |
Capacidade para a análise e a síntese. |
B13 |
Capacidade de comunicación. |
B15 |
Motivación pola calidade. |
C6 |
Valorar criticamente o coñecemento, a tecnoloxía e a información dispoñible para resolver os problemas cos que deben enfrontarse. |
Resultados de aprendizaxe |
Resultados de aprendizaxe |
Competencias / Resultados do título |
Utilizar nuevas arquitecturas de computación, tanto microprocesador como multiprocesador, en soluciones en ingeniería informática. |
A1 A2 A3 A6 A8
|
B2
|
C6
|
Configurar sistemas para servidores y sistemas de alto rendimiento. |
A2 A3 A8
|
B3
|
|
Analizar de forma crítica parámetros de rendimiento de sistemas hardware y aplicaciones específicas con necesidades especiales. |
A2 A3 A4 A6 A8
|
B9 B11 B12
|
C6
|
Desarrollar aplicaciones paralelas en equipo siguiendo el método de ingeniería informática. |
A2 A6
|
B2 B5 B8 B11 B12 B13 B15
|
C6
|
Contidos |
Temas |
Subtemas |
1. Introducción al procesamiento paralelo |
1.1. Procesamiento paralelo
1.2. Condiciones de paralelismo
- Concepto de dependencia
- Condiciones de Bernstein
- Paralelismo hardware y software
1.3. Niveles de paralelismo
1.4. Importancia del procesamiento paralelo
1.5. Clasificaciones de arquitecturas paralelas
- Taxonomía de Flynn
- Organización del sistema memoria: clasificación tradicional de sis-
temas MIMD.
1.6. Medidas de rendimiento
|
2. Paralelismo a nivel de instrucción |
2.1. Rendimiento de un procesador
2.2. Soluciones básicas para la mejora del rendimiento: Evolución
2.3. Técnicas para el aumento del paralelismo a nivel de instrucción
2.4. Planificación estática/software
- Planificación estática básica
- Desenrollamiento de bucles
- Planificación estática superescalar
- Planificación estática VLIW
- Segmentación software
- Detección y eliminación de dependencias
2.5. Planificación dinámica/hardware
- Planificación dinámica superescalar
2.6. Renombre de registros
- Renombre de registros software
- Renombre de registros hardware: Buffer de reordenamiento
2.7. Tratamiento de operaciones load/store: buffer de almacenamiento
2.8. Tratamiento de riesgos de control
- Predicción de salto estática, salto retardado
- Predicción dinámica de saltos
2.9. Especulación
2.10. Ejemplos comerciales |
3. Procesamiento vectorial |
3.1. ¿Por qué máquinas vectoriales?
3.2. Arquitecturas vectoriales
3.3. Arquitectura vectorial básica
- Componentes principales de la U.V.
- Máquinas vectoriales comerciales
- Repertorio de instrucciones de la U.V.
- Ejemplo de bucle vectorial
3.4. Vectorización
3.5. Tiempo de ejecución vectorial
3.6. Organización de memoria en un procesador vectorial
- Entrelazamiento de memoria
- Técnicas de estructuración de datos para máquinas vectoriales
3.7. Control de la longitud del vector
3.8. Rendimiento vectorial
- Efectos de la vectorización.
- Mejorando el rendimiento vectorial:
• Encadenamiento de U.F. vectoriales
• Transformación de código para evitar conflictos de acceso a memoria
3.9. Ejemplos comerciales:
- Earth Simulator
- Cray X1 |
4. Computación paralela: arquitecturas y paradigmas de programación |
4.1. Introducción
4.2. Arquitecturas paralelas modernas:
* Arquitecturas paralelas vectorial, multimedia y GPU
* Arquitecturas paralelas TLP: multiprocesador y multicomputador
* Arqutiecturas paralelas RLP: cluster y WSC
* Arquitecturas paralelas híbridas
* Comparación entre arquitecturas paralelas modernas
4.4. Paradigmas de programación
* Paradigma de memoria compartida, memoria distribuida, PGAS, streaming y MapReduce.
* Paradigmas híbridos
* Comparación entre herramientas disponibles en el mercado
* Comparación entre soluciones tecnológicas disponibles en el mercado |
5. Arquitecturas multiprocesador: coherencia caché y consistencia de memoria |
5.1. Introducción
5.1. Sincronización
5.2. Modelos de consistencia de memoria
5.2. Protocolos de coherencia caché
* Protocolo de snooping
* Protocolo basado en directorio
|
6. Redes de interconexión para arquitecturas paralelas |
6.1. Introducción
6.2. Redes de interconexión estáticas
6.3. Estrategias de conmutación
6.4. Redes de interconexión dinámicas
6.5. Funciones de encaminamiento de datos
6.6. On-chip networks (OCN) |
Planificación |
Metodoloxías / probas |
Competencias / Resultados |
Horas lectivas (presenciais e virtuais) |
Horas traballo autónomo |
Horas totais |
Proba obxectiva |
A1 A2 A3 A4 A6 A8 B2 B3 B5 B8 B9 B11 B12 B13 B15 C6 |
4 |
0 |
4 |
|
Atención personalizada |
|
3 |
0 |
3 |
|
*Os datos que aparecen na táboa de planificación son de carácter orientativo, considerando a heteroxeneidade do alumnado |
Metodoloxías |
Metodoloxías |
Descrición |
Proba obxectiva |
Prueba sobre los conceptos teóricos presentados en las sesiones magistrales. |
Atención personalizada |
Metodoloxías
|
Proba obxectiva |
|
Descrición |
Prueba objetiva:
- Atención personal en horas de tutoría para aclarar dudas sobre los contenidos teórico/prácticos de la materia.
- Revisión de los ejercicios realizados.
|
|
Avaliación |
Metodoloxías
|
Competencias / Resultados |
Descrición
|
Cualificación
|
Proba obxectiva |
A1 A2 A3 A4 A6 A8 B2 B3 B5 B8 B9 B11 B12 B13 B15 C6 |
Prueba sobre los contenidos trabajados en las sesiones magistrales. |
100 |
|
Observacións avaliación |
- La evaluación de
los alumnos consistirá en una prueba escrita en las fechas indicadas en el calendario académico oficial.
- En los exámenes de todas las convocatorias se aplicará el mismo criterio en cuanto a que el alumno debe obtener al menos la mitad de la nota para superar la asignatura.
|
Fontes de información |
Bibliografía básica
|
Ortega, J., Anguita, M. y Prieto, A. (2005). Arquitectura de Computadores. Thomson
Hennessy, J. L. y Patterson, D. A. (2012). Computer Architecture: A Quantitative Approach (5th edition). Morgan Kaufmann
Patterson, D. A. y Hennessy, J. L. (2000). Estructura y Diseño de Computadores. Reverté
Stallings, W. (2006). Organización y arquitectura de computadores. Reverté |
|
Bibliografía complementaria
|
Sima, D. , Fountain,T. y Kacsuk, P. (1997). Advanced Computer Architecture. Addison-Wesley
Culler, D. E. y Singh,J. P. (1999). Parallel Computer Architecture: a Hardware/Software Approach. Morgan Kaufmann
Hwang, K. y Xu, Z. (1998). Scalable Parallel Computing. McGraw-Hill
Tannebaum, A. S. (1999). Structured Computer Organization. Prentice Hall |
|
Recomendacións |
Materias que se recomenda ter cursado previamente |
Estrutura de Computadores I/614111208 | Sistemas Operativos II/614111302 | Estrutura de Computadores II/614111306 | Redes de Comunicacións/614111307 |
|
Materias que se recomenda cursar simultaneamente |
Arquitecturas Tolerantes a Fallos/614111605 | Optimización do Procesamento Paralelo/614111630 |
|
Materias que continúan o temario |
Arquitecturas Tolerantes a Fallos/614111605 | Optimización do Procesamento Paralelo/614111630 |
|
|