Está en la página 1de 65

Procesamiento Paralelo

Basado en: Stallings. Computer Organization and Architecture. Design for performance. 6ed

Antecedentes

Limitaciones de las arquitecturas tradicionales Limitaciones de la tecnologia subyascente Agotamiento de la arquitectura secuencial Necesidad de mayor capacidad de procesamiento

Clasificacion de Flynn

Single instruction, single data stream - SISD Single instruction, multiple data stream - SIMD Multiple instruction, single data stream - MISD Multiple instruction, multiple data stream MIMD

Single Instruction, Single Data Stream SISD Procesador nico Flujo de instrucciones nico Datos almacenados en una memoria nica Uni -procesador

Single Instruction, Multiple Data Stream - SIMD


Instruccion de mquina nica Controla la ejecucin simultnea Varios elementos de procesamiento

Single Instruction, Multiple Data Stream - SIMD


Cada elemento procesador tiene asociada una unidad de memoria Cada instruccin es ejecutada sobre un conjunto de datos diferente por diferentes procesadores Procesadores vectoriales y matriciales

Multiple Instruction, Single Data Stream - MISD

Secuencia de datos Emitidos a un conjunto de procesadores Cada procesador ejecuta una secuencia de instrucciones diferente Nunca se ha implementado

Multiple Instruction, Multiple Data Stream- MIMD


Conjunto de procesadores Ejecutan simultneamente diferentes secuencias de instrucciones Diferentes conjuntos de datos SMPs, clusters y sistemas NUMA

Taxonomia de Arquitectura de Procesadores Paralelos

MIMD - Repaso

Procesadores de propsito general Cada uno puede ejecutar todas las instrucciones necesarias Se pueden clasificar por el mtodo de comunicacin entre procesadores:
Fuertemente acoplados. Debilmente acoplados.

Organizaciones Paralelas - MIMD Memoria Compartida

SMP Fuertemente acoplados


Los procesadores comparten memoria Se comunican mediante la memoria compartida Symmetric Multiprocessor (SMP)
Comparten una unica memoria Bus compartido para acceder a memoria El tiempo de acceso a cualquier area de memoria es aproximadamente el mismo para cualquier procesador

NUMA Fuertemente Acoplados


Acceso a memoria no uniforme Los tiempos de acceso a diferentes regiones de memoria puede diferir

Organizaciones Paralelas - MIMD Memoria Distribuida

Clusters Debilmente Acoplados


Coleccin de procesadores independientes o SMP Interconectados para formar un cluster Comunicacin via rutas fijas o conexiones de red

Multiprocesadores Simetricos
Un computador autonomo con las sgtes. caractersticas
Dos o mas procesadores de capacidad comparable Los procesadores comparten la misma memoria y E/S Los procesadores se conectan mediante un bus u otro tipo de conexin interna El tiempo de acceso a memoria es aproximadamente el mismo para cada procesador Todos los procesadores comparten el acceso a E/S
Sea mediante los mismos canales o canales diferentes que permitan acceso a los dispositivos

Todos los procesadores pueden realizar las mismas funciones (de ah la simetra) Sistema controlado por un sistema operativo integrado
Proporciona interaccin entre procesadores Interaccin a nivel de elementos de trabajo, tarea, archivos y datos

Ventajas SMP
Rendimiento
Si algun trabajo puede hacerse en paralelo

Disponibilidad
Puesto que todos los CPU pueden realizar las mismas funciones, la falla de un CPU no detiene el sistema

Crecimiento incremental
El usuario puede mejorar el rendimiento agregando CPUs adicionales

Escalamiento
Los vendedores pueden ofrecer un rango de productos basados en el nmero de CPUs

Diagrama de bloques de un multiprocesador fuertemente acoplado

Clasificacin de organizacin

Bus comn o de tiempo compartido Memoria multipuerto Unidad de control central

Bus de Tiempo Compartido


El mtodo mas sencillo Estructura e interfaz similar a un sistema de un solo CPU Ofrece las siguientes caractersticas
Direccionamiento distingue mdulos en el bus Arbitraje cualquier mdulo puede ser maestro temporalmente Tiempo compartido si un mdulo tiene el bus, otros deben esperar y pueden tener que suspenderse

En la actualidad tienen multiples CPUs asi como mltiples mdulos de E/S

Bus Compartido

Bus de Tiempo Compartido


Ventajas
Simplicidad Flexibilidad Fiabilidad

Desventajas Rendimiento limitado por el tiempo de ciclo del bus Cada procesador debe tener cache local
Reduce el nmero de accesos al bus

Conduce a problemas de coherencia cache


Resuelto en hardware

Redes de interconexion
Switch de barra cruzada
Arquitectura no bloqueante La red es de orden O(N2)

Redes de interconexion
Red omega
Requiere log2N etapas para conectar N CPUs y N memorias, con N/2 switches por etapa Es bloqueante

Redes de interconexion
Red Benes
Requiere 2log2N 1 etapas para conectar N CPUs y N memorias, con N/2 switches por etapa No bloqueante

Redes de interconexion
Red Banyan
Requiere (N/2)log2N elementos para conectar N CPUs y N memorias Bloqueante

Memoria Multipuerto
Acceso directo independiente de mdulos de memoria por cada CPU Se requiere de lgica para resolver conflictos Ninguna o poca modificacin de los CPUs o mdulos requerida

Memoria Multipuerto Ventajas y Desventajas Mas compleja


Acceso extra en sistema de memoria

Mejor rendimiento
Cada procesador tiene una ruta dedicada a cada mdulo

Se puede configurar partes de la memoria como privadas para uno o mas procesadores
Seguridad mejorada

Politica de actualizacin de cache escritura directa

Unidad de Control Central


Flujos de datos separados por canales entre mdulos independientes Se puede encolar requerimientos Realiza arbitraje y temporizacin Transferir estado y control Realiza alertas de actualizacin de cache Las interfaces con los mdulos se mantienen iguales e.g. IBM S/370

Consideraciones del Sistema Operativo


Procesos concurrentes simultneos Planificacin Sincronizacin Administracin de memoria Fiabilidad y tolerancia a fallos

IBM S/390 Mainframe SMP

S/390 Componentes Crticos


Unidad de procesamiento (PU)
Microprocesador CISC Las instrucciones frecuentemente utilizadas son cableadas Cache L1 de 64K unificada con tiempo de acceso de 1 ciclo

Cache L2
384k

Adaptador Bus Switching Network (BSN)


Incluye 2M of cache L3

Tarjeta de memoria card


8G por tarjeta

Coherencia Cache y Protocolo MESI


Problema multiples copias del mismo dato en diferentes caches Puede resultar en una vision inconsistente de la memoria La politica de post-escritura puede conducir a inconsistencias La post-escritura puede tambien ocasionar problemas a menos que las cache monitoreen el trafico de memoria

Soluciones Software
El problema es resuelto por el compilador y el sistema operativo La sobrecarga se transfiere al tiempo de compilacin La complejidad de diseo se transfiere del hardware al software Sin embargo, el software tiende a tomar decisiones conservadoras
Utilizacion ineficiente de cache

Analizar el codigo para determinar periodos seguros para poner en cache variables compartidas

Soluciones Hardware
Protocolos de coherencia Cache Reconocimiento dinamico de problemas potenciales Tiempo de ejecucion Uso mas eficiente de cache Transparente para el programador Protocolos de directorio Protocolos Snoopy

Protocolos de Directorio
Recolecta y mantiene informacion sobre copias de datos en cache El directorio se almacena en memoria principal Los requerimientos se verifican contra el directorio Se realizan transferencias apropiadas Crea un cuello de botella central Efectivo en sistemas de gran escala con esquemas de interconexion complejos

Protocolo Snoopy
Se distribuye la responsabilidad de la coherencia cache entre los controladores de cache La cache reconoce que una linea esta compartida Las actualizaciones se anuncian a otras caches Adecuado para multiprocesadores basados en bus Incrementa el trafico en el bus

Invalidacion de Escritura
Multiples lectores, un escritor Cuando se requiere una escritura, todas las demas caches de la linea se invalidan El proceso escritor entonces tiene acceso exclusivo hasta que la linea es requerida por otro procesador Se usa en sistemas Pentium II y PowerPC El estado de cada linea se marca como modificado, exclusivo, compartido o invalido MESI

Actualizacion de Escritura
Multiples lectores y escritores La palabra actualizada se distribuye a todos los demas procesadores Algunos sistemas utilizan una mezcla adaptiva de ambas soluciones

Diagrama de Transiciones de Estado MESI

Clusters Alternativa a SMP Alto rendimiento Alta disponibilidad Aplicaciones servidor

Un grupo de computadores autnomos interconectados Trabajan juntos como un recurso unificado Ilusin de ser un computador Cada computador se denomina un nodo

Beneficios de los Cluster

Escalabilidad absoluta Escalabilidad incremental Alta disponibilidad Relacion costo/rendimiento superior

Configuraciones de Clusters - Standby Server, No Shared Disk

Configuraciones de Cluster Disco Compartido

Aspectos de diseo de Sistemas Operativos para clusters


Gestion de fallos
Alta disponibilidad Tolerancia a fallos Failover
Conmutando aplicaciones y datos de un sistema caido a otro alternativo dentro del cluster

Failback
Restauracion de aplicaciones y datos al sistema original Despues que se arreglo el problema

Balanceo de carga
Escalabilidad incremental Automaticamente incluye nuevos computadores en la planificacin El middleware debe reconocer que los procesos pueden conmutar entre maquinas

Paralelizacion
Una sola aplicacion ejecutandose en paralelo en varias maquinas en un cluster
Compilador
Determina en tiempo de compilacion qu partes pueden ser ejecutadas en paralelo Division para diferentes computadoras

Aplicacion
Aplicacion escrita desde cero para ser paralelas Paso de mensajes para enviar datos entre nodos Dificil de programar Mejor resultado final

Computacion parametrica
Si un problema es la ejecucion repetida del algoritmo sobre diferentes conjuntos de datos Ejemplo: simulacion utilizando diferentes escenarios Necesita herramientas efectivas para organizar y ejecutar

Arquitectura de Computadoras en Cluster

Middelware de Cluster
Imagen unificada hacia el usuario
Single system image

Unico punto de ingreso Jerarquia de archivos unico Unico punto de control Unica red virtual Espacio de memoria unico Sistema de gestion de trabajos unico Interfaz de usuario unico Espacio de E/S unico Espacio de proceso unico Migracion de procesos

Cluster v. SMP
Ambos propocionan soporte multiprocesador para aplicaciones de alta demanda. Ambos diponibles comercialmente
SMP por mas tiempo

SMP:
Mas facil de manejar y controlar Mas cercano a sistemas monoprocesador
La planificacion es la diferencia principal Menos espacio fisico Menor consumo de energia

Clustering:
Escalabilidad incremental y absoluta superior Disponibilidad superior
Redundancia

Nonuniform Memory Access (NUMA)


Alternativa a SMP & clustering Uniform memory access Acceso Uniforme a Memoria
Todos los CPU tiene acceso a todas las partes de memoria Tiempo de acceso a todas las regiones de memoria es el mismo Tiempo de acceso a memoria para diferentes CPU es el mismo Como se usa en SMP

Nonuniform Memory Access (NUMA)


Nonuniform memory access Acceso No uniforme a Memoria
Todos los CPU tiene acceso a todas las partes de memoria Tiempo de acceso de CPU difiere dependiendo de las regiones de memoria Diferentes CPU acceden a diferentes regiones de memoria a diferentes velocidades

Cache coherent NUMA


La coherencia cache se mantiene entre las caches de los distintos CPU Significativamente diferente de SMP y clusters

Motivacin
SMP tiene limite practico de numero de CPU
El trafico del bus limita de 16 a 64 CPUs

En clusters, cada nodo tiene memoria propia


Las aplicaciones no ven la memoria global Coherencia mantenida por software, no por hardware

NUMA mantiene caracteristicas SMP a la vez que proporciona multiprocesamiento a gran escala
e.g. Silicon Graphics Origin NUMA: 1024 CPUs MIPS R10000

El objetivo es mantener un sistema de memoria transparente en el sistema, permitiendo nodos multiprocesador, cada uno con bus propio o un sistema de interconexion interna

Organizacion CC-NUMA

Operacion CC-NUMA
Cada CPU tiene su propia cache L1 y L2 Cada nodo tiene su propia memoria Los nodos se conectan via algun tipo de red Cada CPU ve un nico espacio direccionable de memoria Orden de requerimiento a memoria
Cache L1 (local para el CPU) Cache L2 (local para el CPU) Memoria principal (local para el nodo) Memoria remota
Entregada al cache (local para el CPU) solicitante

Automatico y transparente

Secuencia de acceso a Memoria


Cada nodo mantiene un directorio de la ubicacion de porciones de memoria y cache y su estado Por ejemplo, el CPU 3 del nodo 2 (P2-3) solicita la posicion 798, la cual esta en la memoria del nodo 1
P2-3 envia una solicitud de lectura al bus snoopy del nodo 2 El directorio en el nodo 2 reconoce que la posicion esta en el nodo 1 El directorio del nodo 2 solicita el directorio del nodo 1 El directorio del nodo 1 solicita el contenido de 798 La memoria del nodo 1 pone el dato en el bus El directorio del nodo 1 toma los datos del bus El dato se transfiere al directorio del nodo 2 El directorio del nodo 2 pone el datos en el bus (local del nodo 2) Se toma el dato, se pone en cache de P2-3 y se entrega al CPU

Coherencia Cache
El directorio del nodo 1 toma nota que el nodo 2 tiene una copia del dato Si el dato se modifica en cache esto se difunde a los demas nodos Los directorios locales monitorean y purgan la cache local de ser necesario El directorio local monitorea los cambios a datos locales en caches remotas y marca la memoria como invalida hasta una postescritura El directorio local fuerza una postescritura si la posicion de memoria es solicitada por otro procesador

NUMA: Pros & Cons


Rendimiento efectivo en niveles ms altos de paralelismo que SMP No requiere cambios de software significativo El rendimiento puede caer si se accede demasiado a memoria remota
Puede evitarse mediante:
Diseo de cache L1 & L2 que reduzca el acceso a memoria
+ Se necesita buena localidad temporal del software

Buena localidad espacial del software Administracion de memoria virtual que desplace pagina a los nodos que ms los usan

No es transparente
Se necesita cambios en asignacin de pginas, asignacin de procesos y balanceo de carga

Disponibilidad?

Computacion Vectorial
Problemas matematicos que implican procesos fisicos presentan diferente dificultad para el computo
Aerodinamica, sismologia, meteorologia Simulacion de campos contnuos

Alta precision Calculos de punto flotante en arreglos numricos grandes Las supercomputadoras manejan este tipo de problemas
Cientos de millones de flops $10-15 million Optimizado para el calculo antes que para multitarea o E/S Mercado limitado
Investigacion, agencias gubernamentales, meteorologia

Procesador matricial
Alternativa a las supercomputadoras Configuradas como perifericos de mainframes y mini Solo ejecutan las partes vectoriales de los problemas

Ejemplode Suma Vectorial

Enfoques
Las computadoras de proposito general se apoyan en iteraciones para realizar calculo vectorial En el ejemplo, esto requiere seis iteraciones Procesamiento vectorial
Asume que es posible operar en un vector de datos unidimensional Todos los elementos en una fila pueden calcularse en paralelo

Procesamiento paralelo
Procesadores independientes funcionan en paralelo Se utiliza FORK N para iniciar un proceso en la posicion N JOIN N permite que N procesos independientes se junten y fusionen
El Sistema operativo coordina los JOIN La ejecucion se bloquea hasta que todos los N procesos alcancen JOIN

Diseo de procesadores
ALUs encauzados
Dentro de operaciones A traves de operaciones

ALUs paralelos Procesadores paralelos

Enfoques para la computacion vectorial

Encadenamiento
Supercomputadoras Cray Una operacion vectorial puede comenzar tan pronto como el primer elemento del operando vector este disponible y una unidad funcional este libre El resultado de una unidad funcional alimenta inmediatamente a otra Si se utiliza vector de registros, los resultados intermedios no tienen que ser almacenados en memoria

Organizacion de Computadores

IBM 3090 con capacidad Vectorial