Guía docente de Arquitectura de Computadores (2971129)

Curso 2023/2024
Fecha de aprobación: 27/06/2023

Grado

Grado en Ingeniería Informática y Matemáticas

Rama

Ingeniería y Arquitectura

Módulo

Formación Obligatoria Informática

Materia

Estructura y Arquitectura de Computadores (36)

Curso

2

Semestre

2

Créditos

6

Tipo

Obligatoria

Profesorado

Teórico

Mancia Anguita López. Grupo: A

Práctico

  • Mancia Anguita López Grupo: 1
  • Francisco Manuel Ortuño Guzmán Grupo: 2

Tutorías

Mancia Anguita López

Email
  • Primer semestre
    • Miércoles de 10:00 a 13:00 (F. Ciencias - 3ª Planta - Edificio de Física)
    • Viernes de 10:00 a 13:00 (Edificio Auxiliar de la Etsiit. D-1.3)
  • Segundo semestre
    • Martes de 10:30 a 13:30 (Despacho 2D4 Etsiit)
    • Jueves de 10:30 a 13:30 (Despacho 2D4 Etsiit)

Francisco Manuel Ortuño Guzmán

Email
  • Lunes de 10:30 a 14:00 (D1.3 Edificio Auxiliar de la Etsiit)
  • Viernes de 11:30 a 14:00 (D1.3 Edificio Auxiliar de la Etsiit)

Prerrequisitos y/o Recomendaciones

  • Se recomienda la superación de los contenidos y adquisición de competencias de las materias de formación básica y de la asignatura de rama Estructura de Computadores.

Breve descripción de contenidos (Según memoria de verificación del Máster)

  • Estructura y clasificación de arquitecturas paralelas (procesadores, multiprocesadores, multicomputadores y sistemas distribuidos).
  • Clasificación del paralelismo de una aplicación.
  • Arquitecturas con paralelismo a nivel de instrucción (ILP).
  • Programación eficiente de ILP (mecanismos y algoritmos básicos de optimización de código).
  • Arquitecturas multihebra, multinúcleo y multiprocesadores.
  • Programación paralela.
  • Evaluación de prestaciones.

Competencias

Competencias Generales

  • CG04. Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas, servicios y aplicaciones informáticas.
  • CG06. Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando hardware, software y redes.

Competencias Específicas

  • CE14. Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo el paradigma y los lenguajes de programación más adecuados.
  • CE15. Capacidad de conocer, comprender y evaluar la estructura y arquitectura de los computadores, así como los componentes básicos que los conforman.
  • CE20. Conocimiento y aplicación de los principios fundamentales y técnicas básicas de la programación paralela, concurrente, distribuida y de tiempo real.

Competencias Transversales

  • CT02. Capacidad para tomar decisiones basadas en criterios objetivos (datos experimentales, científicos o de simulación disponibles) así como capacidad de argumentar y justificar lógicamente dichas decisiones, sabiendo aceptar otros puntos de vista. 

Resultados de aprendizaje (Objetivos)

  • Explicar las diferentes clasificaciones de arquitecturas paralelas.
  • Distinguir entre procesamiento paralelo y procesamiento distribuido, y asociarlos con las arquitecturas que se utilizan para implementarlos.
  • Relacionar el paralelismo implícito en una aplicación con las arquitecturas que lo aprovechan.
  • Afrontar el análisis y el diseño de un núcleo con paralelismo a nivel de instrucción (ILP).
  • Describir lo que hace un compilador y el programador para aprovechar una arquitectura ILP. Implementar código que aproveche la arquitectura ILP. Distinguir entre las prestaciones del procesador, las del compilador y las del programa que ejecute el computador.
  • Explicar los conceptos de ganancia en prestaciones o velocidad y escalabilidad y las leyes relacionadas con estos conceptos.
  • Describir la estructura y organización de arquitecturas multihebra, multinúcleo y multiprocesador.
  • Explicar lo que hace un compilador para aprovechar una arquitectura multinúcleo y multiprocesador.
  • Expresar un algoritmo de forma apropiada para que se pueda ejecutar en arquitecturas multinúcleos y multiprocesadores. Escribir código que aproveche la arquitectura multinúcleo y multiprocesador.
  • Explicar la necesidad de mantener coherencia entre caches y entre cache y memoria principal. Afrontar el análisis y diseño de protocolos de mantenimiento de coherencia en multicores y multiprocesadores.
  • Distinguir entre los diferentes tipos de modelos de consistencia de memoria. Explicar la influencia en las prestaciones de un computador del modelo de consistencia de memoria.
  • Implementar código que aproveche el modelo de consistencia de memoria y las instrucciones máquina de sincronización. Implementar mecanismos básicos de sincronización.

Programa de contenidos Teóricos y Prácticos

Teórico

  • Arquitecturas paralelas: clasificación y prestaciones
  • Programación paralela
  • Arquitecturas con paralelismo a nivel de hebra (TLP)
  • Arquitecturas con paralelismo a nivel de instrucción (ILP)
  • Arquitecturas con paralelismo de datos (DLP)

Práctico

  • Programación Paralela con Memoria Compartida: distribución de trabajo, comunicación y sincronización entre hebras.
  • Optimización de Código para microarquitecturas ILP
  • Evaluación de Prestaciones

Bibliografía

Bibliografía fundamental

  • J. Ortega, M. Anguita, A. Prieto. Arquitectura de Computadores. Thomson, 2005. ISSN/ISBN: 84-9732-274-6. ESIIT/C.1 ORT arq
  • M. Anguita, J. Ortega. Fundamentos y Problemas de Arquitectura de Computadores, Editorial Técnica Avicam. 2016. ISSN/ISBN: 978-84-16535-52-1. ESIIT/C.1 ANG fun
  • Barbara Chapman, Grabriele Jost, Ruud van der Pas, Using OpenMP. Portable Shared Memory Parallel Programming, The MIT Press. 2008. ISSN/ISBN: 9780262533027. ESIIT/D.1 CHA usi

Bibliografía complementaria

  • T. Rauber, G. Ründer. Parallel Programming: for Multicore and Cluster Systems. Springer 2013. ISSN/ISBN: 9783642378010|9978-3-642-37801-0.
  • Barry Wilkinson. Parallel programming: techniques and applications using networked workstations and parallel computer, 2005. ISSN/ISBN: 9780131405639. ESIIT/D.1 WIL par
  • R. Gerber, A. J.C. Bik, K. B. Smith and X. Tian. The Software Optimization Cookbook. High Performance Recipes for the IA-32 Platforms. Intel Press, 2006. ESIIT/C.1 SOF sof
  • A. Fog. How to Optimize for the Pentium family of microprocessors, 2004.
  • R. Gerber. The Software Optimization Cookbook. High Performance Recipes for the Intel Architecture. Intel Press, 2002. ESIIT/C.1 GER sof
  • Ortega, J.; González, J Problemas de Ingeniería de Computadores. Cien problemas resueltos de procesadores paralelos Ed. Copicentro Granada, 2008. ESIIT/C.1 ORT pro

Metodología docente

  • MD01. Lección Magistral (Clases Teóricas-Expositivas) 
  • MD02. Actividades Prácticas (Resolución de Problemas, Resolución de Casos Prácticos, Desarrollo de Proyectos, Prácticas en Laboratorio, Taller de Programación, Aula de Informática, Prácticas de Campo). 
  • MD03.  Seminarios (Debates, Demos, Exposición de Trabajos Tutelados, Conferencias, Visitas Guiadas, Monografías). 
  • MD04. Actividades no presenciales Individuales. 
  • MD05. Actividades no presenciales Grupales. 
  • MD06. Tutorías Académicas. 

Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final)

Evaluación Ordinaria

Todo lo relativo a la evaluación se regirá por la Normativa de evaluación y calificación de los estudiantes vigente en la Universidad de Granada.

La calificación final que aparecerá en el Acta será un número comprendido entre 0 y 10 con precisión de un decimal (de acuerdo con el art. 5 del R. D 1125/2003). Para aprobar oficialmente una asignatura se ha de obtener una puntuación mínima de 5 (de acuerdo con el art. 5 del R. D 1125/2003).

En función de la convocatoria (ordinaria o extraordinaria), y del tipo de evaluación escogida, la calificación se obtendrá como se detalla a continuación.

El número de estudiantes tan elevado, a pesar de ser una asignatura de ingeniería y tanto por grupo de teoría como por grupo prácticas, condiciona los métodos y herramientas de evaluación aplicables.

La metodología de evaluación por defecto según la normativa de la Universidad de Granada es la evaluación continua, que en el caso de esta asignatura se compone de las siguientes actividades:

Porcentajes de evaluación

Actividades formativas evaluación ordinaria

Ponderación

Mínimo

Máximo

Actividades de teoría

Actividades

60%

2,4

3

Prueba final

3

Actividades de prácticas y seminarios

Actividades

40%

1,6

2

Prueba final

2

Calificación en Acta

100%

5

10

Obsérvese que tener un mínimo supone que es obligatorio hacer la prueba o actividad para poder aprobar la asignatura. En la prueba final de evaluación continua se evaluarán todos los contenidos de teoría y prácticas. Esta prueba tendrá lugar al final del cuatrimestre en la fecha que fije el centro. La calificación en Acta, para quien, no habiendo superando algunos de los mínimos de teoría o prácticas, alcance una puntuación superior a 5 al sumar la nota de teoría y prácticas, será igual a 4.9 (suspenso).

Evaluación Extraordinaria

Para las convocatorias extraordinarias se utilizará la evaluación única final.

Evaluación única final

La siguiente tabla muestra las actividades y la contribución de las mismas a la nota final de la asignatura y la nota mínima exigida, en su caso, para cada una de ellas:

Porcentajes de evaluación

Prueba única final evaluación extraordinaria

Ponderación

Mínimo

Máximo

Prueba escrita de la parte teórica

60%

2,4

6

Prueba escrita de la parte de prácticas y seminarios

40%

1,6

4

Calificación en Acta

100%

5

10

Obsérvese que tener un mínimo supone que es obligatorio hacer la prueba o actividad para poder aprobar la asignatura. Esta prueba tendrá lugar al final del cuatrimestre en la fecha que fije el centro. La calificación en Acta, para quien, no habiendo superando algunos de los mínimos de teoría o prácticas, alcance una puntuación superior a 5 al sumar la nota de teoría y prácticas, será igual a 4.9 (suspenso).