Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
Secuencia de datos Emitidos a un conjunto de procesadores Cada procesador ejecuta una secuencia de instrucciones diferente Nunca se ha implementado
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.
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
Clasificacin de organizacin
Bus Compartido
Desventajas Rendimiento limitado por el tiempo de ciclo del bus Cada procesador debe tener cache local
Reduce el nmero de accesos al bus
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
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
Cache L2
384k
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
Un grupo de computadores autnomos interconectados Trabajan juntos como un recurso unificado Ilusin de ser un computador Cada computador se denomina un nodo
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
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
Motivacin
SMP tiene limite practico de numero de CPU
El trafico del bus limita de 16 a 64 CPUs
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
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
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
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
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