18
Instituto Tecnológico de Querétaro Jesús Zubieta Segundo Unidad IV Arquitectura de Computadoras Grupo: 6 A Ingeniería en Sistemas Computacionales Jueves 29 de noviembre del 2012 Contenido

arquitectura de computadoras

Embed Size (px)

DESCRIPTION

arquitectura de computadoras

Citation preview

Page 1: arquitectura de computadoras

Instituto Tecnológico de Querétaro

Jesús Zubieta Segundo

Unidad IV

Arquitectura de Computadoras

Grupo: 6 A

Ingeniería en Sistemas Computacionales

Jueves 29 de noviembre del 2012

Contenido

a. Procesamiento paralelob. Aspectos basicos de computacion paralelac. Tipos de computacion paralelad. Taxonomia de las arquitecturas paralelase. Arquitectura de las computadoras secuencialesf. Taxonomia de flynng. Organización del espacio de direccciones de memoria

Page 2: arquitectura de computadoras

h. Sistemas de memoria compartidai. Multiprocesadoresj. Redes de interconeccion dinamicas indirectask. Redes commutadasl. Redes de medio compartidom. Multicomputadoras: clostersn. Redes de inetrconeccion esrtaticao. Closters

A-. PROCESAMIENTO PARALELODefinimos como procesamiento paralelo al concepto de agilizar la ejecución de un programa mediante su división en fragmentos que pueden ser ejecutados simultáneamente.Aspectos básicos sobre computación paralela

Diseño de Arquitecturas paralelas. Diseño de algoritmos paralelos eficaces Difieren de los algoritmos secuenciales. Análisis de los algoritmos paralelos. Medidas de la eficacia del sistema. Lenguajes y herramientas de programación paralela. Desarrollo de herramientas para el control y depuración. Portabilidad y reusabilidad. Todavía un poco verde.

Tipos y clasificación.

Complejidad de problemas = gran capacidad de cálculo. Soluciones: computación paralela. Computación paralela ó procesamiento en paralelo. Acelerar la ejecución de un programa mediante su

descomposición en fragmentos que pueden ejecutarse de forma simultánea en su propia unidad de proceso.

N fragmentos en N computadores.

2

Page 3: arquitectura de computadoras

N veces la velocidad de un computador.Conceptos.

N = grado de paralelismo. N es un valor ideal. Debe existir interacción entre las N partes. Transferencias de datos. Sincronización de cálculos en diferentes procesadores.

No obstante:Siempre se pueden conseguir mejoras con la computación paralela.Siempre se podrá beneficiar de los progresos y avances de los sistemasConstrucción de un sistema paralelo.

Según la definición de computaciónParalelo:

Un sistema de procesamiento paralelo puede realizarse de multitud de formas.

La complejidad de las diversas posibilidades, hace que existan diferentes taxonomías.

Taxonomía de Flynn. Según el sistema de almacenamiento.

Ventajas y desventajas

Existen algunos factores que trabajan en contra de la eficiencia del paralelismo y pueden atenuar tanto la ganancia de velocidad como la ampliabilidad.Costes de inicio: en una operación paralela compuesta por miles de proceso, el tiempo de inicio puede llegar ser mucho mayor que le tiempo real de procesamiento, lo que influye negativamente en la ganancia de velocidad.Interferencia: como lo procesos que se ejecutan en un proceso paralelo acceden con frecuencia a recursos compartidos, pueden sufrir un cierto retardo como consecuencia de la interferencia de cada nuevo proceso en la competencia, este fenómeno afecta tanto la ganancia de velocidad como la ampliabilidad.Sesgo: normalmente es difícil dividir una tarea en partes exactamente iguales, entonces se dice que la forma de distribución de los tamaños es sesgada.El procesamiento paralelo implica una serie de dificultades a nivel programación de software, es difícil lograr una optimización en el aprovechamiento de los recursos de todas las CPU con el que se esté trabajando sin que se formen cuello de botella.

3

Page 4: arquitectura de computadoras

Ventajas del Procesamiento en Paralelo.

El procesamiento en paralelo ejecuta procesos en donde cada procesador se encarga de uno u otro y aceleran de esta forma el cálculo.4.- TAXONOMIA DE ARQUITECTURA PARALELALas diferentes posibilidades existentes para desarrollar sistemas paralelos hacen que una clasificación definitiva sea complicada, y seguramente estéril. Por ello, en primer lugar se recuerdan las características básicas del modelo secuencial, con el fin de delimitar los aspectos básicos que son comunes o diferentes de los sistemas paralelos. Seguidamente se muestra una clasificación clásica propuesta por Flynn, que se basa en el flujo de instrucciones y en el flujo de datos, es decir, el mecanismo de control utilizado. Sin embargo, existe una gran cantidad de criterios, aunque no todos mutuamente excluyentes entre sí,Para establecer una clasificación de las distintas arquitecturas paralelas. Así, tomando como base la clasificación de Flynn se atiende a la organización del espacio de memoria, analizando las diferentes posibilidades que permiten establecer diversas arquitecturas.Se consideran otros criterios básicos de clasificación que diferencian unos sistemas de otros, entre los que destaca la red de interconexión.

5.- ARQUITECTURA DE LOS COMPUTADORES SECUENCIALESComo es bien sabido, los computadores secuenciales, también denominados computadores serie, se basan en la arquitectura de J. von Neumann. Este modelo tiene como elementos fundamentales una Unidad Central de Procesamiento (CPU, acrónimo en inglés de Central Processing Unit), y una memoria, que se caracteriza porque en ella no se distinguen datos e instrucciones. En este modelo se considera una única secuencia de instrucciones que tratan una única secuencia de datos. Por ello se conocen como computadores SISD,*Single Instruction Stream, Single Data Stream(Único flujo de instrucciones, único flujo de datos). Una introducción detallada puede encontrarse en (Dormido, 2000).El modelo de von Neumann presenta dos limitaciones básicas. La velocidad de ejecución de las instrucciones y la velocidad de transferencia de información entre CPU y memoria.La primera está relacionada con los componentes y la tecnología electrónica asociada. Sin embargo, desde el punto de vista de la arquitectura de computadores se han desarrollado algunas estrategias para aumentar el rendimiento. La más conocida es la segmentación (Pipelining).La segmentación de instrucciones consiste en traer a la cola de instrucciones la instrucción siguiente a la que se está ejecutando. En último término se realiza la segmentación de ejecución, o segmentación encauzada, en la que se permite que varias instrucciones se ejecuten simultáneamente en diferentes unidades funcionales de cálculo

4

Page 5: arquitectura de computadoras

(multiplicadores, sumadores, unidad de carga/almacenamiento), durante las diferentes etapas en lasque se divide la ejecución de la instrucción.

Taxonomía de Flynn.

Clasificación según el flujo (secuencia de elementos) de instrucciones y flujo de datos que se desarrolla en los computadores.

SISD Single Instruction Single Data. SIMD Single Instruction Multiple Data. MISD Multiple Instruction Single Data. MIMD SISD.

Instrucción única, datos únicos. Computadores serie actuales. Las instrucciones se ejecutan

secuencialmente, pudiendo estar solapadas (segmentación). Pueden existir más de una unidad de recursos de cálculo, pero

siempre bajo una única unidad de control.

SIMD. Instrucción única, datos múltiples. Procesadores matriciales y vectoriales. Varias unidades de procesamiento, trabajando sobre flujos de

datos distintos, ejecutando la misma instrucción, bajo una única unidad de control.

El sincronismo entre procesadores está garantizado. Punto de sincronismo: después de cada ciclo de ejecución de

las instrucciones.

5

Page 6: arquitectura de computadoras

MISD.

Instrucciones múltiples, datos únicos. Varias unidades de procesamiento, ejecutando instrucciones

diferentes, sobre el mismo flujo de datos. No existe materialización real. De forma abierta: Máquinas VLIW. Arquitecturas desacopladas. Arquitecturas sistólicas.

MIMD.

Instrucciones múltiples, datos múltiples. Se incluyen la mayoría de los sistemas multiprocesadores y

multicomputadores. Un computador MIMD implica interacciones entre varios

procesadores.

6

Page 7: arquitectura de computadoras

En esencia.

Atendiendo a la clasificación del Flynn, las arquitecturas paralelas pueden ser esencialmente de dos tipos:

a. SIMD.b. MIMD.

Modelo SIMD. Cada procesador ejecuta la misma operación, en sincronismo,

sobre su propio conjunto de datos. Las instrucciones se envían a más de un procesador. Actúa como un procesador ALU, sin unidad de control. La única unidad de control, es la responsable de buscar las

instrucciones, y repartirlas a los distintos procesadores. El conjunto de datos se estructura en forma de array o vector.

Modelo SIMD.Áreas de aplicación:

Tratamientos de arrays en bucles: Simulaciones de sistemas. Procesamiento de imágenes.

Problemas:

7

Page 8: arquitectura de computadoras

Tratamiento de sentencias de selección. Realizar una operación diferente dependiendo del dato que se

tenga.Modelo MIMD.

Cada procesador actúa de forma independiente: Mediante descomposición de control: Cada procesador puede estar ejecutando un programa distinto. Mediante descomposición de datos: Cada procesador puede estar ejecutando el mismo programa,

en diferentes partes del mismo, sobre distintos datos. Esta variante se conoce como SPMD. No confundir con SIMD. Existe gran intercambio de información entre los procesadores. Son más generales y eficaces que los SIMD.

Clasificación según el sistema de memoria.Nueva clasificación computación paralela:

Sistemas de memoria compartida. Multiprocesadores. Sistemas de memoria distribuida. Multicomputadores. Clasificación orientada “casi” a MIMD. Se centra en cómo realizar el intercambio de información entre

procesadores.

8

Page 9: arquitectura de computadoras

Memoria compartida. UMA. La mayoría incorpora una memoria caché local. Es importante mantener la coherencia de la información en la

caché.

Memoria compartida. De UMA a NUMA.UMA:

Escalabilidad limitada. Número máximo de procesadores: 16 a 32.

Mejoras: Memoria local para los procesadores. Se evitan accesos a memoria a través de la red. El acceso a memoria ya no es uniforme. Nacen los sistemas con memorias de acceso no uniforme:

NUMA.NUMA:

El tiempo de acceso a memoria difiere entre palabras. La información está distribuida.

Memoria compartida. NUMA. Se conocen también como sistemas de memoria compartida

distribuida (DSM). Los accesos de un procesador a las memorias locales de los otros

requieren un hardware de control específico.

9

Page 10: arquitectura de computadoras

Memoria compartida. NUMA.La red de interconexión es fundamental.Su latencia no debe incrementar los tiempos de acceso remotos.Dependiendo de cómo se comparta la información, siempre garantizando la coherencia de la memoria:Memoria compartida. NUMA. ccNUMA.

Cada nodo, contiene una porción de la memoria total del sistema.NODO:

Uno o varios procesadores con sus cachés, una memoria principal y un directorio.

Las variables compartidas se reparten directamente por el programador o por el sistema operativo.

La coherencia se mantiene mediante los directorios.Memoria compartida. NUMA. COMA.Idea básica:

La memoria local de cada nodo es la caché del resto del sistema.Ventajas:

Un fallo de acceso remoto se resuelve distribuyendo automáticamente por el sistema los datos que está utilizando la aplicación.

Problemas (desventajas):Complejidad para mantener la coherencia de las copias de los datos a lo largo de todo el sistema.

Memoria compartida Existe tanto en sistemas SIMD como MIMD. El interés se centra en MIMD. MIMD + memoria compartida: Multiprocesadores simétricos (SMP). De 2 a 64 procesadores. Comparten la totalidad de recursos. SIMD + memoria compartida: Procesadores multihebra: Una sola copia del sistema operativo. Cada nodo ejecuta una hebra. Windows NT.

10

Page 11: arquitectura de computadoras

Memoria compartida. Multicomputadores.Cada procesador dispone de su propia memoria: Acceso privado, independiente del resto, accesible sólo por el procesador.La comunicación se realiza por paso de mensajes. Arquitecturas de paso de mensajes. Util y dominante con gran número de procesadores ( > 100).

La red de interconexión:Facilita el paso de mensajes entre los procesadores nodo..

Memoria distribuida.

Un sistema de memoria distribuida: Puede ser un único computador con múltiples CPU's

conectadas por un bus de datos. Procesadores masivamente paralelos. (MPP). Puede ser múltiples computadores enlazados por una red de

interconexión más o menos rápida.Clusters:Con computadores dedicadosBeowulf.Con computadores no dedicados:NOW (Network Of Workstations)

Memoria distribuida. Beowulf vs. NOW

Beowulf es un conjunto de nodos minimalistas (Placa base, CPU, memoria y algún dispositivo de E/S), conectados por un medio de comunicación barato, con una topología de red influenciada por el problema a resolver.Cada nodo se dedica únicamente a procesos del supercomputador.En una red NOW suele existir un switch central para realizar las comunicaciones, mientras que en un Beowulf el mecanismo es más rudimentario conexiones placa a placa mediante RJ-45 cruzado.La programación Beowulf depende de la arquitectura, y siempre se realiza por paso de mensaje.

11

Page 12: arquitectura de computadoras

Otros criterios de clasificación.

Según las redes de interconexión:Estáticas:Comunicación punto a punto entre procesadores.Se aplican a las arquitecturas de paso de mensajes.Dinámicas.

A. Se construyen con switches, hubs o enlaces de comunicación.

B. Se denominan indirectas.C. Se utilizan para los sistemas de memoria compartida.

Otros criterios de clasificación.

Redes básicas de interconexión

– Entre la más sencilla (bus compartido) y la más compleja (totalmente conectada), existe una gran diversidad de redes, aunque sólo 7 u 8 han tenido éxito comercialmente– Compromiso entre el coste y el rendimiento– Parámetros que influyen en el coste• Nº de conmutadores (switches)• Nº de procesadores por conmutador (grado)• Nº total de líneas (Nºenlaces * Anchura en bits)• Longitud física de los enlaces• Implementación real (más simple 2D que 3D)– Parámetros que influyen en el rendimiento• Diámetro de la red– Máxima distancia entre cualquier dos procesadores de la red.

12

Page 13: arquitectura de computadoras

La distancia entre dos procesadores es definida como el camino más corto (en término de número de enlaces) entre ellos. Puesto que la distancia determina el tiempo de comunicación, las redes con pequeños diámetros son mejores• Ancho de bisección y AB de bisección:– Ancho de bisección de una red es el número mínimo de canales a cortar para dividir la red en dos mitades iguales. El AB bisección es el producto del ancho de bisección por el AB de cada canal.Este parámetro nos indica el ancho de banda posible entre las dos mitades• AB agregado normalizado– Número máximo de comunicaciones simultaneas multiplicado por el AB de cada canal

Redes de interconexión dinámicas (indirecta)– Típicamente usadas para NUMA– Los switches se alejan del procesador– El camino entre un procesador y otro, se realiza a través de varios switches– Los tipos más comunes son:• Red de barras cruzadas (CrossBar)• Red basada en Bus común• Árboles• Red multietapaRedes de conmutación.

Básicamente se emplea conmutación de paquetes:No se reserva el medio.La información se transmite en forma de paquetes:Bien a través de un camino establecido.Bien buscando su propia ruta al nodo destino.Exige mecanismos de arbitraje.Aumenta el nivel de ocupación de la red.

Redes de uso compartido

Indirectamente, el tipo de conexión que se haga en la capa física puede influir en el diseño de la capa de Enlace. Atendiendo al número de equipos que comparten un medio hay dos posibilidades:Conexiones punto a punto: que se establecen entre dos equipos y que no admiten ser compartidas por tercerosConexiones multipunto: en la que más de dos equipos pueden usar el medio.

13

Page 14: arquitectura de computadoras

Así por ejemplo la fibra óptica no permite fácilmente conexiones multipunto (sin embargo, véase FDDI) y por el contrario las conexiones inalámbricas son inherentemente multipunto (sin embargo, véanse los enlaces infrarrojos). Hay topologías por ejemplo la topología de anillo, que permiten conectar muchas máquinas a partir de una serie de conexiones punto a punto(Directa entre dos maquinas).Equipos adicionales A la hora de diseñar una red hay equipos adicionales que pueden funcionar a nivel físico, se trata de los repetidores, en esencia se trata de equipos que amplifican la señal, pudiendo también regenerarla. En las redes Ethernet con la opción de cableado de par trenzado (la más común hoy por hoy) se emplean unos equipos de interconexión llamados concentradores (repetidores en las redes 10Base-2) más conocidos por su nombre en inglés (hubs) que convierten una topología física en estrella en un bus lógico y que actúan exclusivamente a nivel físico, a diferencia de los conmutadores (switches) que actúan a nivel de enlace.LOS SISTEMAS DE MEMORIA DISTRIBUIDA O MULTICOMPUTADORES

Los sistemas de memoria distribuida o multicomputadores pueden ser de dos tipos básicos.El primero de ellos consta de un único computador con últiples CPUs comunicadas por un bus de datos mientras que en el segundo se utilizan múltiples computadores, cada uno con su propio procesador, enlazados por una red de interconexión más o menos rápida. En el primer caso, se habla de procesadores masivamente paralelos (MPPs, Massively Parallel Processors), y en el segundo se conocen de forma genérica como clusters.Clúster

es una tipo de arquitectura paralela distribuida que consiste de un conjunto de computadores independientes (y bajo coste en principio) interconectados operando de forma conjunta como un único recurso computacional Sin embargo, cada computador puede utilizarse de forma independiente o separadaComponentes de clúster•Múltiples nodos de computación•Los nodos pueden encontrarse encapsulados en un solo contenedor , o estar físicamente diferenciados.•Los nodos pueden ser PCs, estaciones de trabajo o SMPs.•Diferentes sistemas operativos•UNIX, Linux, W2000, WXP•Red de interconexión de altas prestaciones•Myrinet, Infiniband, Gigabit Ethernet•Diferentes tipos de interfaz de red•En el bus E/S, en el bus de sistema, en el procesador.

14

Page 15: arquitectura de computadoras

•Protocolos rápidos de comunicación•Active messages, Fast messages, VIATipos de cluster• Alto rendimiento (High Performance)• Objetivo: mejorar el rendimiento en la obtención de la solución de un problema, en términos bien del tiempo de respuesta bien de su precisión• Aplicaciones: Generalmente estos problemas de computo suelen estar ligados a Cálculos matemáticos, Renderizaciones de gráficos, Compilación de programas, Compresión de datos, Descifrado de códigos, Rendimiento del sistema operativo...• Nivel implementación:• Librerías y bibliotecas de funciones. No implementan balanceo carga.El trabajo es repartido de forma manual.• Sistema operativo. Basan su funcionamiento en la compartición de los recursos y balanceo de carga dinámico.• Soluciónes Híbridas • Alta disponibilidad (High Availability)• Más demandados por empresas para asegurar servicio a clientes• Objetivo: Ofrecer máxima disponibilidad de los servicios prestados por elcluster (24x7x365). Competencia para abaratar sistemas redundantes.• Intentan proporcionar fiabilidad, disponibilidad y servicios RAS.• Soluciones Hardware. Caras, Hardware redundante funcionando en paralelo y con sistemas de detección de fallos y recuperación.• Soluciones Software tipo Cluster.• Alta disponibilidad (High Availability)• Técnicas para proporcionar disponibilidad.• Basadas en redundancia sobre dispositivos críticos. El dispositivo redundante toma el control ante el fallos del dispositivo maestro.• Redundancia aislada. Existen dos posibilidades para dar una funcionalidad o servicio (procesadores, fuentes, imágenes deS.O...)• N-Redundancia. N equipos para proporcionar servicio.

CLUSTERS: ENTORNOS DE PROGRAMACIÓN

MÚLTIPLES VARIANTES

• Threads (PCs, SMPs, …) .– POSIX Threads.– Java Threads. • PVM.• MPI.– Linux, NT, en muchas Supercomputadoras.• Software DSMs (Shmem).• Otras tecnologías.Compiladores – C/C++/Java.– Programación Paralela con C++ (MIT Press book).

15

Page 16: arquitectura de computadoras

• RAD (rapid application development tools).– Herramientas basadas en GUI para modelos de PP.• Debuggers.• Herramientas de análisis de performance.• Herramientas de Visualización.

16