Professional Documents
Culture Documents
CARRERA:
Ingeniera en Sistemas Computacionales
MATERIA:
Arquitectura de Computadoras
DOCENTE:
Ing. Alberto Gonzlez Lagunas
TRABAJO:
Procesamiento Paralelo
GRUPO:
3501
SALON:
Aula 28
FECHA DE ENTREGA:
Lunes 28 de Enero del 2013
Tianguistenco, Mxico
PROCESAMIENTO PARALELO
INTRODUCCIN
El paralelismo es una forma de computacin en la cual varios clculos pueden realizarse simultneamente. Basado en el principio de dividir los problemas grandes para obtener varios problemas pequeos, que son posteriormente solucionados en paralelo (divide y vencers).
Cuatro componentes principales: 1. Memoria. 2. Unidad de Control. 3. Unidad Aritmtica Lgica. 4. Entrada/Salida. I/O: Memoria de acceso aleatorio para almacenar datos e instrucciones. La unidad de control trae instrucciones y datos de la memoria, decodifica las instrucciones y secuencialmente coordina las operaciones para llevar a cabo la tarea programada. La Unidad aritmtica realiza las operaciones aritmticas bsicas. La entrada/salida es la interfaz con el humano. Cache: Ideas? Comentarios? Saben por qu?
2.2 Taxonoma de Flynn (1966) Se separan las instrucciones y los datos en dos dimensiones. Pueden ser simples o mltiples. SISD: Single Instruction, Single Data. SIMD: Single Instruction, Multiple Data. MISD: Multiple Instruction, Single Data. MIMD: Multiple Instruction, Multiple Data.
2.2.1 SISD Una computadora serie (no hay paralelismo) 3 Marco Antonio Len Gonzlez Gmez
Instruccin simple: solo una instruccin ejecutada por el CPU durante cualquier ciclo del reloj. Datos simples: solo una secuencia de datos es usada como entrada durante cualquier ciclo de reloj. Ejecucin determinstica El modelo ms antiguo de la computacin Ejemplos: los primeros mainframes, la mayora de los mviles, las primeras PCs.
Fig. 2: SISD
2.2.2 SIMD Un tipo de computadora paralela Instruccin simple: solo una instruccin ejecutada por el CPU durante cualquier ciclo del reloj. Datos mltiples: cada unidad de procesamiento puede operar sobre un conjunto de datos diferente. Se adapta muy bien en problemas con un alto grado de regularidad, tales como grficos/imgenes. Ejecucin sincrnica y determinstica. Dos variantes: arreglo de procesadores o unidades vectoriales. Las unidades de procesamiento de grficos (GPUs) emplean unidades de procesamiento SIMD.
Fig. 3: SIMD
2.2.3 MISD Una secuencia de datos nica es provista a unidades de procesamiento mltiples Cada unidad de procesamiento opera sobre los datos de manera independiente (contadores de programa independientes) Pocos ejemplos prcticos de este modelo de computadora paralela Algunos usos posibles pueden ser: Mltiples filtros de frecuencia operando sombre una misma seal. Mltiples algoritmos de criptografa operando sobre un mensaje codificado.
Fig. 4: MISD
2.2.4 MIMD Actualmente es el tipo de computadora paralela ms usado. La mayora de las computadoras caen aqu. Instrucciones mltiples: cada procesador puede estar ejecutando una secuencia de instrucciones diferentes. Datos mltiples: cada unidad de procesamiento puede operar sobre un conjunto de datos diferente. La ejecucin puede ser sincrnica o asincrnica, determinstica o no-determinstica. Ejemplos: la mayora de las supercomputadoras actuales, clusters y grids, multi-core PCs. Nota: muchas arquitecturas MIMD pueden contener componentes internos que ejecuten SIMD.
Fig. 5: MIMD
Fig. 6: UMA
Un claro ejemplo son las machinas SMP (Symmetric Multiprocessor). Procesadores idnticos. Las prioridades y los tiempos de acceso son iguales para todos. CC-UMA: Cache Coherent UMA (usualmente lo hace el hardware).
3.1.2 NUMA
Fig. 7: NUMA
Usualmente ocurre cuando se conectan dos o ms sistemas SMPs. Un sistema SMP puede acceder directamente a la memoria del otro. 6 Marco Antonio Len Gonzlez Gmez
No todos los procesadores tienen igual acceso a todas las direcciones de memoria. El acceso a memoria a travs del vnculo (o bus) es ms lento. CC-NUMA: Cache Coherent NUMA. 3.2 Ventajas y Desventajas de Memoria Compartida 3.2.1 Ventajas Espacio de memoria global es amigable para el programador. El intercambio de datos entre las tareas es rpido y uniforme debido a la proximidad entre CPUs. 3.2.2 Desventajas El principal problema es que no se puede escalar el modelo. Cuando se agregan CPUs el trfico se incrementa geomtricamente y comienzan los problemas de coherencia. El programador es responsable de la sincronizacin de los datos y la coherencia en la memoria. 3.3 Multiprocesadores Pueden clasificarse en esta categora muchos sistemas multiprocesadores y sistemas multicomputadores. Un multiprocesador se define como una computadora que contiene dos o ms unidades de procesamiento que trabajan sobre una memoria comn bajo un control integrado. Si el sistema de multiprocesamiento posee procesadores de aproximadamente igual capacidad, estamos en presencia de multiprocesamiento simtrico; en el otro caso hablamos de multiprocesamiento asimtrico. Todos los procesadores deben poder acceder y usar la memoria principal. De acuerdo a esta definicin se requiere que la memoria principal sea comn y solamente existen pequeas memorias locales en cada procesador. Si cada procesador posee una gran memoria local se lo puede considerar un sistema de multicomputadoras, el cual puede ser centralizado o distribuido. Todos los procesadores comparten el acceso a canales de E/S, unidades de control y dispositivos. Para el sistema de multiprocesamiento debe existir un sistema operativo integrado, el cual controla el hardware y el software y debe asegurar la interaccin entre los 7 Marco Antonio Len Gonzlez Gmez
procesadores y sus programas al nivel elemental de dato, conjunto de datos y trabajos. Una computadora MIMD intrnseca implica interacciones entre n procesadores debido a que todos los flujos de memoria se derivan del mismo espacio de datos compartido por todos los procesadores. Si los n flujos de datos provienen de subespacios disjuntos de memorias compartidas, entonces estamos en presencia del denominado operacin SISD mltiple, que no es otra cosa que un conjunto de n monoprocesadores SISD. Una MIMD intrnseca est fuertemente acoplada si el grado de interaccin entre los procesadores es alto. De otra manera consideramos el sistema como dbilmente acoplado. Muchos sistemas comerciales son dbilmente acoplados, a saber, la IBM 370/168, Univac 1100/80, IBM 3081/3084, etc. 3.4 Redes de Interconexin Dinmicas Redes Dinmicas son redes cuya configuracin puede modificarse. Hay dos tipos: 1. Mono-etapa. 2. Multi-etapa. Las redes mono-etapa realizan conexiones entre elementos de proceso en una sola etapa. Puede que no sea posible llegar desde cualquier elemento a cualquier otro, por lo que puede ser necesario recircular la informacin (=> redes recirculantes).
Las redes multi-etapa realizan conexiones entre los elementos de proceso en ms de una etapa. 8 Marco Antonio Len Gonzlez Gmez
Redes multi-etapa bloqueantes: Se caracterizan porque no es posible establecer siempre una nueva conexin entre un par fuente/destino libres, debido a conflictos con las conexiones en curso. Generalmente existe un nico camino posible entre cada par fuente/destino. Redes multi-etapa reconfigurables: Se caracterizan porque es posible establecer siempre una nueva conexin entre un par fuente/destino libres, aunque haya conexiones en curso, pero puede hacerse necesario un cambio en el camino usado por alguna(s) de ella(s) (reconfiguracin). Interesante en procesadores matriciales, en donde se conoce simultneamente todas las peticiones de interconexin. Redes Dinmicas No Bloqueantes: Se caracterizan porque es posible establecer siempre una nueva conexin entre un par fuente/destino libres sin restricciones. Son anlogas a los conmutadores de barras cruzadas, pero pueden representar mayor latencia, debido a las mltiples etapas. 3.5 Redes Conmutadas
Una red conmutada consiste en un conjunto de nodos conectados por enlaces de datos, est compuesta por varios elementos: Estaciones: puntos terminales. Ej. Ordenadores, telfonos, etc. Nodos Internos: conectados slo a otros nodos. Nodos Perifricos: conectados a estaciones. Algunas caractersticas importantes de este tipo de redes son: Enlaces con varios canales entre nodos (multiplexacin). Varios caminos alternativos entre nodos. En las redes conmutadas se llevan a cabo dos procesos importantes los cuales son conmutacin de circuitos y conmutacin de paquetes. 3.5.1 Conmutacin de Circuitos Funcionamiento: se establece una conexin fsica permanente entre las estaciones durante la comunicacin. Fases: Establecimiento del circuito: realizacin de llamada, realizacin de conexiones en los nodos. Transferencia de Datos: normalmente en ambos sentidos (full-dplex). Desconexin: liberacin de recursos.
3.5.2 Conmutacin de Paquetes Desarrollada a principios de los 70 para comunicacin de datos digitales. Conmutacin de circuitos: Poco eficiente. Mal aprovechamiento de recursos. 10 Marco Antonio Len Gonzlez Gmez
Los nodos intercambian informacin digital. Informacin dividida en paquetes, cada paquete contiene: Informacin de control: origen, destino, tamao, prioridad. Datos a transferir. Cada nodo encola los paquetes recibidos y los enva por la lnea ms adecuada segn su destino.
3.5.3 Conmutacin de Paquetes Ventajas Mayor eficiencia: slo se usan los enlaces cuando hay datos que enviar. Cualquier tipo de datos: codificacin digital Posibilidad de establecer prioridades distintas para distintos tipos de comunicacin: calidad de servicio. Posibilidad de comunicacin incluso con red saturada.
4.1 Caractersticas Generales de Memoria Distribuida Hay Varios modelos de memoria distribuida. El patrn general es el uso de una red de comunicacin para conectar las memorias de los procesadores. Los procesadores tiene su propia memoria local y no hay correspondencia entre dos procesadores. Independencia de operacin, los cambios en un lugar no afectan al resto. Cuando un procesador necesita un dato externo, el programador lo ordena explcitamente. La red de comunicacin puede variar ampliamente, puede ser una red Ethernet. 4.2 Ventajas de Memoria Distribuida El modelo escala con los procesadores. A medida que se agregan unidades de procesamiento la memoria escala proporcionalmente. Cada procesador accede a un dato en memoria sin inferir al resto de los componentes. Se eliminan las demoras por accesos mltiples. 4.3 Desventajas de Memoria Distribuida El programador es responsable de muchos de los detalles asociados a la comunicacin entre procesadores. Puede ser dificultoso mapear estructuras de datos basadas en memoria global a esta organizacin de memoria.
BIBLIOGRAFA:
Kai Hwang y Faye A. Briggs. Arquitectura de Computadoras y Procesamiento Paralelo. McGraw-Hill, 1987. John L. Hennessy y David A. Patterson. Arquitectura de Computadoras, un Enfoque Cuantitativo. Morgan Kaufmann, segunda edicion, 1993. William Stallings. Organizacion y Arquitectura de Computadores, diseno para optimizar prestaciones. Prentice Hall, cuarta edicion, 1996.