¡Descarga Introducción a las arquitecturas y más Apuntes en PDF de Ingeniería del Software solo en Docsity!
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Tema 11:
Introducción a las
arquitecturas avanzadas de
computadores
José Luis Bosque Orero Javier Castillo Villar Óscar David Robles Sánchez
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Programa
- Bibliografía.
- Introducción.
- Paralelismo a nivel de instrucción
- Introducción a los multiprocesadores
- Programación de multiprocesadores
- Multiprocesadores conectados por un bus.
- Multiprocesadores conectados por red.
- Clusters. Grid computing.
- Multicores.
- GPUs
- Falacias y errores clásicos.
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Bibliografía
D.A. PATTERSON, J.L. HENNESSY. Estructura y Diseño de Computadores. Reverté, 2000. PETER S. PACHECO. An introduction to Parallel Programming. Elsevier – Morgan Kauffman. 2011. DAVID B. KIRK, WEN‐MEI W. HWU. Programming Massively Parallel Processors. A Hands‐on Approach. nVIDIA, Elsevier‐Morgan Kauffman. 2010 DORMIDO, S. CANTO M.A., MIRA J., DELGADO A.E. Estructura y Tecnología de Computadores. 2ª edición. Sanz y Torres, 2000. J.L. HENNESSY, D.A. PATTERSON. Computer Architecture. Morgan Kauffman, 2003. P. DE MIGUEL. Fundamentos de los Computadores. 7ª edición. Paraninfo, 1999. W. STALLINGS. Organización y Arquitectura de Computadores. 5ª edición, Prentice Hall, 2000.
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Introducción
• 1986 a 2002: incremento del rendimiento de los
microprocesadores del 50% anual en media.
- Incremento del rendimiento de aplicaciones: factor 60 en 10 años.
• Desde el 2002: ralentizado al 20%.
- Incremento del rendimiento de aplicaciones: factor 6 en 10 años.
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Introducción
• ¿Por qué construimos sistemas paralelos?
- Aumento en la densidad de transistores disponibles
- Disminución de su tamaño
- Aumento de su velocidad, y la del circuito.
- Aumento de consumo eléctrico.
- Disipación de calor.
- Se están alcanzando los límites de disipación: riesgo de inestabilidad.
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Introducción
• ¡Cuidado con la terminología!
• Paralelismo interno: un único procesador actuando
sobre varias instrucciones simultáneamente
- Procesadores segmentados, superescalares, hyperthreading.
• Paralelismo externo: varios procesadores
trabajando en paralelo, sobre diferentes
instrucciones o datos.
- Multiprocesadores, multicores.
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Introducción
• Con un procesador se obtiene un rendimiento.
• Con varios procesadores se espera un
rendimiento proporcional.
• Intuición: juntar varios procesadores
convencionales puede resultar más barato/efectivo
que construir un procesador más avanzado con
tecnología más cara.
• “Parallelism is the wave of the future and always
will be.”
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
10
Paralelismo a nivel de instrucción
• El paralelismo a nivel de instrucción (ILP) intenta
explotar el paralelismo intrínseco de las
instrucciones solapando su ejecución.
- Dos instrucciones son paralelas si se pueden ejecutar simultáneamente en el cauce sin causar paradas (suponiendo que hay suficientes recursos).
- Para ello no debe haber dependencias de datos entre ellas
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
13
Paralelismo a nivel de instrucción
• RAW
- ADD R3, R2, R
- ADD R4,R3,R
- WAW
- ADD R3,R2,R
- ADD R3,R6,R
- WAR
- ADD R3,R2,R
- ADD R2,R5,R
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
14
Paralelismo a nivel de instrucción
• Son necesarios nuevos esquemas de ejecución
que permitan la ejecución fuera de orden y
resuelvan las dependencias WAR y WAR
• Algoritmo de la Pizarra
- Suficientes recursos y ausencia de dependencias de datos.
- soluciona las WAW, para en las WAR
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
15
Paralelismo a nivel de instrucción
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
16
Paralelismo a nivel de instrucción
• Algoritmo de Tomasulo
- Rastreo de operandos disponibles para minimizar RAW
- Renombrado de registros para minimizar WAW y WAR
• Para aprovechar al máximo estos esquemas se
hace emiten más de una instrucción por ciclo:
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
19
Introducción a los multiprocesadores
- A pesar de las grandes mejoras que se han producido en el diseño de sistemas monoprocesador, para algunas aplicaciones no es suficiente.
- La solución pueden ser los sistemas compuestos por varios procesadores: - Es una solución sencilla, natural y en general, con una buena relación coste‐prestaciones. - Las mejoras en microprocesadores cada vez son más complejas: cada avance implica crecer en complejidad y consumo de potencia y área (coste). - Se ha producido una clara mejora en el software que permite explotar el paralelismo de las aplicaciones.
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Puntos clave en el diseño de multiprocesadores:
• ¿Cómo se comparten los datos?
• ¿Cómo se coordinan los procesadores entre ellos?
• ¿Cuántos procesadores tienen?
Introducción a los multiprocesadores
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Compartición de los datos
• Procesadores de memoria compartida.
- Único espacio de direcciones compartido por los procesadores.
- Los procesadores se comunican mediante variables compartidas en memoria.
- Todos los procesadores pueden acceder a cualquier posición de memoria usando load y store.
- Sincronización: lectura después de escritura.
Introducción a los multiprocesadores
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Compartición de los datos
Si todos los procesadores tienen idéntico tiempo de acceso a memoria: acceso a memoria uniforme ( UMA ) o multiprocesador simétricos ( SMP ).
Dependiendo del procesador que haga la referencia y la palabra referenciada, los accesos pueden ser más o menos rápidos: acceso a memoria no uniforme ( NUMA ).
Introducción a los multiprocesadores
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Programación de multiprocesadores
• Exigencia de un mejor rendimiento.
• Sobrecarga de comunicaciones.
• Ley de Gustafson: al disponer de computadores
más potentes, no basta con resolver los mismos
problemas más rápido, sino que buscamos abordar
problemas más complejos.
• El programador necesita un conocimiento más
profundo de la arquitectura subyacente.
• Portabilidad
• Ley de Amdhal
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Multiprocesadores conectados por un bus
Cache
Processor
Cache
Processor
Cache
Processor
Single bus
Memory I/O
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
27
Multiprocesadores conectados por un bus
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Multiprocesadores conectados por un bus
• Los microprocesadores son más pequeños que
un procesador multichip. Se pueden colocar más
en un bus.
• Las memorias cache de los procesadores pueden
reducir el tráfico en el bus.
• Existen mecanismos para mantener la coherencia
de caches en multiprocesadores.
• Tanto el tamaño como el tráfico en el bus
determinan el número de procesadores útiles.
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Multiprocesadores conectados por red
• Problemas del esquema basado en bus: se
desean cosas incompatibles.
- Gran ancho de banda.
- Latencia pequeña.
- Gran longitud.
Network
Cache
Processor
Cache
Processor
Cache
Processor
Memory Memory Memory
Nuevamente: ¡cuidado
con la terminología!
Paso de mensajes
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Multiprocesadores conectados por red
• No sirve el fisgoneo para mantener la coherencia.
• Alternativa: directorios.
• Existe un directorio que contiene el estado de
cada bloque de la memoria principal.
- Qué caches tienen copias del bloque.
- Si está “sucio”.
- …
• La diferencia es el mecanismo que detecta
cuándo se escriben datos compartidos.
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
P erformance
2 4 8 16 32 N umber of proces s ors
N etwork B us P erfo rm anc e pe r unit co s t
2 4 8 16 32 N um be r o f proc es s ors
N e two rk B us
C ost
2 4 8 16 32 N umber of proces s ors
N etwork B us
Multiprocesadores conectados
por red
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Clusters. Grid computing
Ethernet
IBM Compatible
IBM Compatible
Workstation IBM Compatible
Workstation
Workstation (^) Workstation
Hub
- Un cluster es un tipo de computador paralelo o distribuido que consiste en un conjunto de computadores independientes pero interconectados entre sí que trabajan conjuntamente como un único recurso para resolver un problema común.
- Multiprocesador “casero”: utiliza componentes comerciales, baratos y potentes (COTS)
Beowulf: PCs como nodos de proceso con SO linux
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Clusters. Grid computing
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Clusters. Grid computing
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Clusters. Grid computing
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Clusters. Grid computing