Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Introducción a las arquitecturas , Apuntes de Ingeniería del Software

Asignatura: Organizacion y Arquitectura de Computadores, Profesor: Oscar Oscar, Carrera: Ingeniería del Software, Universidad: URJC

Tipo: Apuntes

2012/2013

Subido el 12/10/2013

blueeyes3334
blueeyes3334 🇪🇸

3.9

(40)

24 documentos

1 / 31

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Tema11:
Introducciónalas
arquitecturasavanzadasde
computadores
JoséLuisBosqueOrero
JavierCastilloVillar
ÓscarDavidRoblesSánchez
ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES
Programa
1. Bibliografía.
2. Introducción.
3. Paralelismoaniveldeinstrucción
4. Introducciónalosmultiprocesadores
5. Programacióndemultiprocesadores
6. Multiprocesadoresconectadosporunbus.
7. Multiprocesadoresconectadosporred.
8. Clusters.Grid computing.
9. Multicores.
10. GPUs
11. Falaciasyerroresclásicos.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f

Vista previa parcial del texto

¡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

  1. Bibliografía.
  2. Introducción.
  3. Paralelismo a nivel de instrucción
  4. Introducción a los multiprocesadores
  5. Programación de multiprocesadores
  6. Multiprocesadores conectados por un bus.
  7. Multiprocesadores conectados por red.
  8. Clusters. Grid computing.
  9. Multicores.
  10. GPUs
  11. 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:

  • Ejecución Superescalar

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