Download - procesamientoParalelo
-
8/22/2019 procesamientoParalelo
1/65
Procesamiento
Paralelo
Basado en: Stallings. Computer Organization and Architecture. Design for performance. 6ed
-
8/22/2019 procesamientoParalelo
2/65
Antecedentes
Limitaciones de las arquitecturas tradicionales
Limitaciones de la tecnologia subyascente
Agotamiento de la arquitectura secuencial
Necesidad de mayor capacidad deprocesamiento
-
8/22/2019 procesamientoParalelo
3/65
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
-
8/22/2019 procesamientoParalelo
4/65
Single Instruction, Single Data Stream -
SISD
Procesador nico
Flujo de instrucciones nico
Datos almacenados en una memoria nica
Uni -procesador
-
8/22/2019 procesamientoParalelo
5/65
Single Instruction, Multiple Data Stream
- SIMD
Instruccion de mquina nica Controla la ejecucin simultnea
Varios elementos de procesamiento
-
8/22/2019 procesamientoParalelo
6/65
Single Instruction, Multiple Data Stream
- SIMD
Cada elemento procesador tiene asociada una unidad de memoria
Cada instruccin es ejecutada sobre un conjunto de datos diferentepor diferentes procesadores
Procesadores vectoriales y matriciales
-
8/22/2019 procesamientoParalelo
7/65
Multiple Instruction, Single Data Stream
- MISD
Secuencia de datos
Emitidos a un conjunto de procesadores
Cada procesador ejecuta una secuencia deinstrucciones diferente
Nunca se ha implementado
-
8/22/2019 procesamientoParalelo
8/65
Multiple Instruction, Multiple Data
Stream- MIMD
Conjunto de procesadores
Ejecutan simultneamente diferentes secuencias deinstrucciones
Diferentes conjuntos de datos
SMPs, clusters y sistemas NUMA
-
8/22/2019 procesamientoParalelo
9/65
Taxonomia de Arquitectura de
Procesadores Paralelos
-
8/22/2019 procesamientoParalelo
10/65
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.
-
8/22/2019 procesamientoParalelo
11/65
Organizaciones Paralelas - MIMD
Memoria Compartida
-
8/22/2019 procesamientoParalelo
12/65
SMP Fuertemente acoplados
Los procesadores comparten memoria Se comunican mediante la memoria compartida
Symmetric Multiprocessor (SMP)Comparten una unica
memoria
Bus compartido paraacceder a memoria
El tiempo de acceso acualquier area de memoriaes aproximadamente elmismo para cualquierprocesador
-
8/22/2019 procesamientoParalelo
13/65
NUMA Fuertemente Acoplados
Acceso a memoria no uniforme Los tiempos de acceso a diferentes regiones de
memoria puede diferir
-
8/22/2019 procesamientoParalelo
14/65
Organizaciones Paralelas - MIMD
Memoria Distribuida
-
8/22/2019 procesamientoParalelo
15/65
Clusters Debilmente Acoplados
Coleccin de procesadores independientes o SMP Interconectados para formar un cluster
Comunicacin via rutas fijas o conexiones de red
-
8/22/2019 procesamientoParalelo
16/65
Multiprocesadores Simetricos
Un computador autonomo con las sgtes. caractersticasDos o mas procesadores de capacidad comparableLos procesadores comparten la misma memoria y E/S
Los procesadores se conectan mediante un bus u otro tipo deconexin interna
El tiempo de acceso a memoria es aproximadamente el mismopara cada procesador
Todos los procesadores comparten el acceso a E/S
Sea mediante los mismos canales o canales diferentes quepermitan 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
-
8/22/2019 procesamientoParalelo
17/65
Ventajas SMP
RendimientoSi algun trabajo puede hacerse en paralelo
DisponibilidadPuesto 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 agregandoCPUs adicionales
EscalamientoLos vendedores pueden ofrecer un rango de
productos basados en el nmero de CPUs
-
8/22/2019 procesamientoParalelo
18/65
Diagrama de bloques de un
multiprocesador fuertemente acoplado
-
8/22/2019 procesamientoParalelo
19/65
Clasificacin de organizacin
Bus comn o de tiempo compartido
Memoria multipuerto
Unidad de control central
-
8/22/2019 procesamientoParalelo
20/65
Bus de Tiempo Compartido
El mtodo mas sencillo
Estructura e interfaz similar a un sistema de unsolo CPU
Ofrece las siguientes caractersticas
Direccionamiento distingue mdulos en el busArbitraje 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
-
8/22/2019 procesamientoParalelo
21/65
Bus Compartido
-
8/22/2019 procesamientoParalelo
22/65
Bus de Tiempo Compartido
VentajasSimplicidad
Flexibilidad
Fiabilidad
Desventajas
Rendimiento limitado por eltiempo de ciclo del bus
Cada procesador debe tenercache localReduce el nmero de accesos
al bus
Conduce a problemas decoherencia cacheResuelto en hardware
-
8/22/2019 procesamientoParalelo
23/65
Redes de interconexion
Switch de barra cruzadaArquitectura no bloqueante
La red es de orden O(N2)
-
8/22/2019 procesamientoParalelo
24/65
Redes de interconexion
Red omegaRequiere log2N etapas para conectar N CPUs y N
memorias, con N/2 switches por etapa
Es bloqueante
-
8/22/2019 procesamientoParalelo
25/65
Redes de interconexion
Red BenesRequiere 2log2N 1 etapas para conectar N CPUs y N
memorias, con N/2 switches por etapa
No bloqueante
-
8/22/2019 procesamientoParalelo
26/65
Redes de interconexion
Red BanyanRequiere (N/2)log2N elementos para conectar N CPUs
y N memorias
Bloqueante
-
8/22/2019 procesamientoParalelo
27/65
Memoria Multipuerto
Acceso directo independiente de mdulos de memoriapor cada CPU
Se requiere de lgica para resolver conflictos
Ninguna o poca modificacin de los CPUs o mdulos
requerida
M i M lti t V t j
-
8/22/2019 procesamientoParalelo
28/65
Memoria Multipuerto Ventajas y
Desventajas
Mas complejaAcceso extra en sistema de memoria
Mejor rendimientoCada procesador tiene una ruta dedicada a cada
mdulo
Se puede configurar partes de la memoria comoprivadas para uno o mas procesadores
Seguridad mejorada Politica de actualizacin de cache escritura
directa
-
8/22/2019 procesamientoParalelo
29/65
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
-
8/22/2019 procesamientoParalelo
30/65
Consideraciones del Sistema Operativo
Procesos concurrentes simultneos Planificacin
Sincronizacin
Administracin de memoria Fiabilidad y tolerancia a fallos
-
8/22/2019 procesamientoParalelo
31/65
IBM S/390 Mainframe SMP
-
8/22/2019 procesamientoParalelo
32/65
S/390 Componentes Crticos
Unidad de procesamiento (PU)Microprocesador CISC
Las instrucciones frecuentemente utilizadas soncableadas
Cache L1 de 64K unificada con tiempo de acceso de1 ciclo
Cache L2384k
Adaptador Bus Switching Network (BSN)Incluye 2M of cache L3
Tarjeta de memoria card8G por tarjeta
-
8/22/2019 procesamientoParalelo
33/65
Coherencia Cache y Protocolo MESI
Problema multiples copias del mismo dato endiferentes caches
Puede resultar en una vision inconsistente de lamemoria
La politica de post-escritura puede conducir ainconsistencias
La post-escritura puede tambien ocasionar
problemas a menos que las cache monitoreen eltrafico de memoria
-
8/22/2019 procesamientoParalelo
34/65
Soluciones Software
El problema es resuelto por el compilador y el sistemaoperativo
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
conservadorasUtilizacion ineficiente de cache
Analizar el codigo para determinar periodos seguros paraponer en cache variables compartidas
-
8/22/2019 procesamientoParalelo
35/65
Soluciones Hardware
Protocolos de coherencia Cache
Reconocimiento dinamico de problemaspotenciales
Tiempo de ejecucion Uso mas eficiente de cache
Transparente para el programador
Protocolos de directorio Protocolos Snoopy
-
8/22/2019 procesamientoParalelo
36/65
Protocolos de Directorio
Recolecta y mantiene informacion sobre copiasde datos en cache
El directorio se almacena en memoria principal
Los requerimientos se verifican contra eldirectorio
Se realizan transferencias apropiadas
Crea un cuello de botella central
Efectivo en sistemas de gran escala conesquemas de interconexion complejos
-
8/22/2019 procesamientoParalelo
37/65
Protocolo Snoopy
Se distribuye la responsabilidad de la coherenciacache entre los controladores de cache
La cache reconoce que una linea esta
compartida Las actualizaciones se anuncian a otras caches
Adecuado para multiprocesadores basados enbus
Incrementa el trafico en el bus
-
8/22/2019 procesamientoParalelo
38/65
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
-
8/22/2019 procesamientoParalelo
39/65
Actualizacion de Escritura
Multiples lectores y escritores La palabra actualizada se distribuye a todos los
demas procesadores
Algunos sistemas utilizan una mezcla adaptivade ambas soluciones
Diagrama de Transiciones de Estado
-
8/22/2019 procesamientoParalelo
40/65
Diagrama de Transiciones de Estado
MESI
-
8/22/2019 procesamientoParalelo
41/65
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
-
8/22/2019 procesamientoParalelo
42/65
Beneficios de los Cluster
Escalabilidad absoluta
Escalabilidad incremental
Alta disponibilidad Relacion costo/rendimiento superior
Configuraciones de Clusters - Standby
-
8/22/2019 procesamientoParalelo
43/65
Configuraciones de Clusters - Standby
Server, No Shared Disk
Configuraciones de Cluster -
-
8/22/2019 procesamientoParalelo
44/65
Configuraciones de Cluster -
Disco Compartido
Aspectos de diseo de Sistemas
-
8/22/2019 procesamientoParalelo
45/65
Aspectos de diseo de Sistemas
Operativos para clusters
Gestion de fallos
Alta disponibilidadTolerancia 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 cargaEscalabilidad incremental
Automaticamente incluye nuevos computadores en laplanificacin
El middleware debe reconocer que los procesos pueden conmutarentre maquinas
-
8/22/2019 procesamientoParalelo
46/65
Paralelizacion
Una sola aplicacion ejecutandose en paralelo en varias
maquinas en un clusterCompilador
Determina en tiempo de compilacion qu partes pueden serejecutadas en paralelo
Division para diferentes computadoras
AplicacionAplicacion 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
-
8/22/2019 procesamientoParalelo
47/65
Arquitectura de Computadoras en
Cluster
-
8/22/2019 procesamientoParalelo
48/65
Middelware de Cluster
Imagen unificada hacia el usuarioSingle 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
-
8/22/2019 procesamientoParalelo
49/65
Cluster v. SMP
Ambos propocionan soporte multiprocesador paraaplicaciones de alta demanda.
Ambos diponibles comercialmenteSMP 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
-
8/22/2019 procesamientoParalelo
50/65
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
-
8/22/2019 procesamientoParalelo
51/65
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 dememoria
Diferentes CPU acceden a diferentes regiones de memoria a diferentesvelocidades
Cache coherent NUMA La coherencia cache se mantiene entre las caches de los distintos CPU
Significativamente diferente de SMP y clusters
-
8/22/2019 procesamientoParalelo
52/65
Motivacin
SMP tiene limite practico de numero de CPUEl trafico del bus limita de 16 a 64 CPUs
En clusters, cada nodo tiene memoria propiaLas aplicaciones no ven la memoria global
Coherencia mantenida por software, no por hardware
NUMA mantiene caracteristicas SMP a la vez queproporciona multiprocesamiento a gran escalae.g. Silicon Graphics Origin NUMA: 1024 CPUs MIPS R10000
El objetivo es mantener un sistema de memoria
transparente en el sistema, permitiendo nodosmultiprocesador, cada uno con bus propio o unsistema de interconexion interna
-
8/22/2019 procesamientoParalelo
53/65
Organizacion CC-NUMA
-
8/22/2019 procesamientoParalelo
54/65
Operacion CC-NUMA
Cada CPU tiene su propia cacheL1 y L2
Cada nodo tiene su propiamemoria
Los nodos se conectan via alguntipo de red
Cada CPU ve un nico espaciodireccionable de memoria
Orden de requerimiento amemoria
Cache L1 (local para el CPU)
Cache L2 (local para el CPU) Memoria principal (local para el
nodo)
Memoria remota
Entregada al cache (local parael CPU) solicitante
Automatico y transparente
-
8/22/2019 procesamientoParalelo
55/65
Secuencia de acceso a Memoria
Cada nodo mantiene un directorio de la ubicacion de porciones dememoria y cache y su estado
Por ejemplo, el CPU 3 del nodo 2 (P2-3) solicita la posicion 798, lacual 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
-
8/22/2019 procesamientoParalelo
56/65
Coherencia Cache
El directorio del nodo 1 toma nota que el nodo 2 tieneuna copia del dato
Si el dato se modifica en cache esto se difunde a losdemas nodos
Los directorios locales monitorean y purgan la cachelocal de ser necesario
El directorio local monitorea los cambios a datos localesen 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
-
8/22/2019 procesamientoParalelo
57/65
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 amemoria 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 deprocesos y balanceo de carga
Disponibilidad?
-
8/22/2019 procesamientoParalelo
58/65
Computacion Vectorial
Problemas matematicos que implican procesos fisicos presentan
diferente dificultad para el computoAerodinamica, 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
-
8/22/2019 procesamientoParalelo
59/65
Ejemplode Suma Vectorial
-
8/22/2019 procesamientoParalelo
60/65
Enfoques
Las computadoras de proposito general se apoyan en
iteraciones para realizar calculo vectorial En el ejemplo, esto requiere seis iteraciones
Procesamiento vectorialAsume que es posible operar en un vector de datos
unidimensionalTodos los elementos en una fila pueden calcularse en paralelo
Procesamiento paraleloProcesadores 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 yfusionen
El Sistema operativo coordina los JOIN
La ejecucion se bloquea hasta que todos los N procesos alcancenJOIN
-
8/22/2019 procesamientoParalelo
61/65
Diseo de procesadores
ALUs encauzadosDentro de operacionesA traves de operaciones
ALUs paralelos
Procesadores paralelos
-
8/22/2019 procesamientoParalelo
62/65
Enfoques para la computacion vectorial
-
8/22/2019 procesamientoParalelo
63/65
Encadenamiento
Supercomputadoras Cray
Una operacion vectorial puede comenzar tanpronto como el primer elemento del operandovector este disponible y una unidad funcionaleste libre
El resultado de una unidad funcional alimentainmediatamente a otra
Si se utiliza vector de registros, los resultados
intermedios no tienen que ser almacenados enmemoria
-
8/22/2019 procesamientoParalelo
64/65
Organizacion de Computadores
-
8/22/2019 procesamientoParalelo
65/65
IBM 3090 con capacidad Vectorial