UNIDAD 4
ANTOLOGIA
Carrera: Ingeniería de Sistemas Computacionales Asignatura: Arquitectura de Computadoras
Maestro: Jorge Maestro: Jorge Ontiveros Ontiveros Alumno: Cristian Eduardo Cavazos Torres N de Control: !"#$%$&"
'eriodo Escolar: Ene(Jun)*%!+
,nidad I-: 'rocesamiento 'rocesamiento paralelo par alelo
4.1 Aspectos básicos de la computación par alela
La computación paralela es una forma de cómputo en la que muchas instrucciones se ejecutan simultáneamente, operando sobre el principio de que problemas grandes, a menudo se pueden dividir en unos más pequeños, que luego son resueltos simultáneamente (en paralelo). Ha varias formas diferentes de computación paralela! paralelismo a nivel de bit, paralelismo a nivel de instrucción, paralelismo de datos paralelismo de tareas. "l paralelismo se ha empleado durante muchos años, sobre todo en la computación de altas prestaciones, pero el inter#s en ella ha crecido $ltimamente debido a las limitaciones f%sicas que impiden el aumento de la frecuencia. &omo el consumo de energ%a ' por consiguiente la generación de calor' de las computadoras constitue una preocupación en los $ltimos años, la computación en paralelo se ha convertido en el paradigma dominante en la arquitectura de computadores, principalmente en forma de procesadores multin$cleo. Las computadoras paralelas pueden clasificarse seg$n el nivel de paralelismo que admite su hardare! equipos con procesadores multin$cleo multiprocesador que tienen m$ltiples elementos de procesamiento dentro de una sola máquina los cl$steres, *++ grids que utili-an varios equipos para trabajar en la misma tarea. *uchas veces, para acelerar la tareas espec%ficas, se utili-an arquitecturas especiali-adas de computación en paralelo junto a procesadores tradicionales. Los programas informáticos paralelos son más dif%ciles de escribir que los secuenciales, porque la concurrencia introduce nuevos tipos de errores de softare, siendo las condiciones de carrera los más comunes. La comunicación sincroni-ación entre diferentes subtareas son algunos de los maores obstáculos para obtener un buen rendimiento del programa paralelo. La máima aceleración posible de un programa como resultado de la paraleli-ación se conoce como la le de /mdahl.
4.2 Tipos de computación paralela
+aralelismo a nivel de bit 0esde el advenimiento de la integración a gran escala (1L2) como tecnolog%a de fabricación de chips de computadora en la d#cada de 3456 hasta alrededor de 3478, la aceleración en la arquitectura de computadores se lograba en gran medida duplicando el tamaño de la palabra en la computadora, la cantidad de información que el procesador puede manejar por ciclo. "l aumento del tamaño de la palabra reduce el n$mero de instrucciones que el procesador debe ejecutar para reali-ar una operación en variables cuos tamaños son maores que la longitud de la palabra. +or ejemplo, cuando un procesador de 7 bits debe sumar dos enteros de 38 bits, el procesador primero debe adicionar los 7 bits de orden inferior de cada n$mero entero con la instrucción de adición, a continuación, añadir los 7 bits de orden superior utili-ando la instrucción de adición con acarreo que tiene en cuenta el bit de acarreo de la adición de orden inferior, en este caso un procesador de 7 bits requiere dos instrucciones para completar una sola operación, en donde un procesador de 38 bits necesita una sola instrucción para poder completarla. Históricamente, los microprocesadores de 9 bits fueron sustituidos por unos de 7 bits, luego de 38 bits :; bits, esta tendencia general llegó a su fin con la introducción de procesadores de 89 bits, lo que ha sido un estándar en la computación de propósito general durante la $ltima d#cada. +aralelismo a nivel de instrucción
(2> ? +edido de 2nstrucción, 20 ? 0ecodificación de instrucción, "@ ? "jecutar, *"* ? /cceso a la memoria, AB ? "scritura)
"l primer paso hacia la paraleli-ación de las arquitecturas de los computadores, se da con la aparición de los procesadores o sistemas vectoriales. Los procesadores vectoriales etienden el concepto de paralelismo por segmentación al tratamiento de grandes cadenas de datos. +roblemas. e han propuesto diversas definiciones para arquitecturas paralelas. La dificultad en definir con precisión el t#rmino está entrela-ada con el problema de especificar una taonom%a de arquitecturas paralelas. "l problema central para poder especificar una definición consiguientemente la taonom%a para las modernas arquitecturas paralelas es lograr satisfacer el siguiente conjunto de imperativos! "cluir las arquitecturas que incorporan solamente mecanismos de paralelismo de bajo nivel que se han populari-ado tanto como caracter%stica t%pica de las modernas computadoras. *antener los elementos $tiles de la clasificación de >lnn tales como los flujos de datos e instrucciones.
4.2.2 Arquitectura de los computadores secuenciales
/ diferencia de los sistemas combinacionales, en los sistemas secuenciales, los valores de las salidas, en un momento dado, no dependen eclusivamente de los valores de las entradas en dicho momento, sino tambi#n de los valores anteriores. "l sistema secuencial más simple es el biestable. La maor%a de los sistemas secuenciales están gobernados por señales de reloj. / #stos se los denomina s%ncronos o sincrónicos, a diferencia de los as%ncronos o asincrónicos que son aquellos que no son controlados por señales de reloj. / continuación se indican los principales sistemas secuenciales que pueden encontrarse en forma de circuito integrado o como estructuras en sistemas programados! I &ontador I =egistros 4.2.2.1 Taxonomía de Flynn
+robablemente la clasificación más popular de computadores sea la clasificación de >lnn. "sta taonom%a de las arquitecturas está basada en la clasificación atendiendo al flujo de datos e instrucciones en un sistema.
Jrgani-ación lógica Los programas a menudo están organi-ados en módulos, algunos de los cuales pueden ser compartidos por diferentes programas, algunos son de sólolectura otros contienen datos que se pueden modificar. La gestión de memoria es responsable de manejar esta organi-ación lógica, que se contrapone al espacio de direcciones f%sicas lineales.
&ada procesador posee su propia unidad de control ejecuta su propio código sobre sus propios datos, puede ejecutar cualquier aplicación (no solo programas vectoriales). *emoria &ompartida &entrali-ada! La memoria compartida por todos los procesadores accesible desde cualquiera. 0escompuesta en varios módulos para permitir el acceso concurrente de varios procesadores &ada procesador debe tener un espacio de direccionamiento suficientemente amplio como para poder direccionarla completamente. *ultiprocesador con un sistema de memoria compartida en el cual el tiempo de acceso var%a dependiendo de la ubicación de la palabra de memoria.
La memoria compartida se distribue f%sicamente por todos los procesadores (memorias locales). "l conjunto de memorias locales forma el espacio de direccionamiento global accesible por todos los procesadores. "n los multiprocesadores cada procesador suele tener asociada una cache local ello introduce el problema de la coherencia en chache! cualquier modificación local de una determinada posición de la memoria compartida se reali-ara primeramente sobre un chache local ello puede dar lugar a una visión global incoherente de la memoria. Los elementos que integran un multiprocesador puede estar conectados entre s% a trav#s de una estructura Kerárquica de buses. Los buses digitales son los sistemas de interconeión fundamentales adoptados en sistemas comerciales desde estaciones de trabajo a minicomputadores, mainframes multiprocesadores. 4.!.1 %edes de interconexión dinámicas o indirectas
&aracter%sticas! /ntes de definir las caracter%sticas de las redes de interconeión diremos que se llama nodo a cualquiera de los dispositivos que se quiera conectar a la red, tales como elementos de proceso, módulos de memoria, procesadores de entradasalida, etc. Mrado
de los nodos
0iámetro /ncho
de una red
de bisección
Latencia
de una red
+roductividad "scalabilidad imetr%a &onectividad
&lasificación de =edes de interconeión! "l criterio más importante para la clasificación de las redes de interconeión se basa en la rigide- de los enlaces entre los nodos! a este respecto a las redes pueden clasificarse en estáticas o dinámicas.
=edes de interconeión dinámicas Las redes de interconeión dinámicas son convenientes en los casos en que se desee una red de propósito general a que son fácilmente reconfigurables. Gambi#n por eso, este tipo de =edes facilitan mucho la escalabilidad. "n general, las redes dinámicas necesitan de elementos de coneión espec%ficos como pueden ser árbitros de bus, conmutadores, etc. Las principales topolog%as de redes dinámicas son las siguientes! Buses =edes
de l%neas cru-adas o matri- de conmutación (crossbar)
=edes
multietapa o *2E (*ultistage 2nterconnection EetorN)
o o o o o o
=edes Jmega =edes de l%nea base =edes *ariposa =edes 0elta =edes de &loss =edes de Benes
4.!.1.1 %edes de medio compartido
"ntorno de medios compartidos Jcurre cuando varios host tiene acceso al mismo medio. +or ejemplo, si varios +& se encuentran conectados al mismo cable f%sico, a la misma fibra óptica entonces se dice que comparten el mismo entorno de medios. "ntorno etendido de medios compartidos "s un tipo especial de entorno de medios compartidos en el que los dispositivos de netorNing pueden ampliar el entorno de modo que pueda incluir accesos m$ltiples o distancias maores de cableado. "l veh%culo básico que empleamos para acceder a nuestra red es la coneión de nuestro ordenador a la misma. e reali-a generalmente mediante cables. 0ependiendo del cable de sus caracter%sticas f%sicas, podremos reali-ar diferentes coneiones. La coneión f%sica entre el ordenador la red se establece siempre a trav#s de un puerto.
4.!.1.2 %edes conmutadas
&onsiste en un conjunto de nodos interconectados entre s%, a trav#s de medios de transmisión, formando la maor%a de las veces una topolog%a mallada, donde la información se transfiere encaminándola del nodo de origen al nodo destino mediante conmutación entre nodos intermedios.
"stablecimiento de la coneión Gransferencia de la información Liberación de la coneión
La conmutación en un nodo a la coneión f%sica o lógica de un camino de entrada al nodo con un camino de salida del nodo con el fin de transferir la información que llegue por el primer camino al segundo. Las redes conmutadas son las redes de área etensa. Las redes conmutadas se dividen en!
&onmutación de paquetes &onmutación de circuitos
La conmutación de paquetes! "s un m#todo de env%o de datos en una red de computadoras.
Los paquetes forman una cola se transmiten lo más rápido posible. +ermiten la conversión en la velocidad de los datos. La red puede seguir aceptando datos aunque la transmisión sea lenta. "iste la posibilidad de manejar prioridades (si un grupo de información es más importante que los otros, será transmitido antes que dichos otros).
La conmutación de circuitos! "s un tipo de coneión que reali-an los diferentes nodos de una red para lograr un camino apropiado para conectar dos usuarios de una red de telecomunicaciones. / diferencia de lo que ocurre en la conmutación de paquetes, en este tipo de conmutación se establece un canal de comunicaciones dedicado entre dos estaciones. e reservan recursos de transmisión de conmutación de la red para su uso eclusivo en el circuito durante la coneión. Osta es transparente! una ve- establecida parece como si los dispositivos estuvieran realmente conectados.
1entajas
"l ancho de banda es definido se mantiene constante durante la comunicación. "l circuito es fijo, no se pierde tiempo en el encaminamiento de la información. La transmisión se reali-a en tiempo real, siendo $til para la comunicación de vo- video. i bien eiste retardo en el establecimiento de la llamada, el retardo de la transmisión posterior es despreciableD si el tráfico se reali-a generalmente entre el mismo par de estaciones puede ser más velo-.
4.!.2 &o'erencia de cac'e
La coherencia de cache hace referencia a la integridad de los datos almacenados en las caches locales de los recursos compartidos. La coherencia de la cache es un caso especial de la coherencia de memoria. *$ltiples caches con recursos comunes. &uando los clientes de un sistema, en particular las &+
&lusters
"l t#rmino cl$ster (del ingl#s cluster, grupo o racimo) se aplica a los conjuntos o conglomerados de computadoras construidos mediante la utili-ación de hardares comunes que se comportan como si fuesen una $nica computadora. La tecnolog%a de cl$steres ha evolucionado en apoo de actividades que van desde aplicaciones de supercómputo softare de misiones cr%ticas, servidores eb comercio electrónico, hasta bases de datos de alto rendimiento, entre otros usos. "l cómputo con cl$steres surge como resultado de la convergencia de varias tendencias actuales que incluen la disponibilidad de microprocesadores económicos de alto rendimiento redes de alta velocidad, el desarrollo de herramientas de softare para cómputo distribuido de alto rendimiento, as% como la creciente necesidad de potencia computacional para aplicaciones que la requieran. implemente, un cl$ster es un grupo de m$ltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un $nico ordenador, más potente que los comunes de escritorio.
Los cl$steres son usualmente empleados para mejorar el rendimiento o la disponibilidad por encima de la que es provista por un solo computador t%picamente siendo más económico que computadores individuales de rapide- disponibilidad comparables. 0e un cl$ster se espera que presente combinaciones de los siguientes servicios! 3. /lto rendimiento ;. /lta disponibilidad :. Balanceo de carga 9. "scalabilidad 4.4.! (rogramación de clusters
+rogramación paralela! estos cluster están diseñados optimi-ados para correr programas paralelos. "n este caso, los programas tienen que ser hechos espec%ficamente para funcionar en forma paralela. G%picamente estos programas son modelos que requieren reali-ar gran cantidad de cálculos num#ricos. La ventaja de programarlos de esta manera correrlos en un cluster es que se reducen drásticamente los tiempos de proceso. "n el caso de modelos meteorológicos usados para predecir el tiempo es obvia la necesidad de correrlos en tiempo m%nimo. &uando se programa un modelo en una plataforma multiprocesadores (una máquina con más de un procesador), es necesario usar esquemas de programación paralela. Las bibliotecas (*+2) son las que permiten paraleli-ación de tareas. "n el caso de los cluster &/L2, portar programas hechos con bibliotecas *+2 es directo gracias al uso de bibliotecas &/*+2. on sumamente importante los sistemas de interconeión utili-ados entre los nodos en este tipo de clusters. &2 es un standard internacional (2"""3F48) para interconeiones de alta velocidad. 0olphin 2nterconnect olutions fabrica una variedad de productos &2, entre los cuales se encuentran las tarjetas adaptadoras &2+&2 que &/L2 utili-a en sus clusters. "l performance de estas tarjetas es sorprendente! varios cientos de megabtes por segundo tiempos de latencia inferiores al microsegundo en la capa &2 llegando a los l%mites del bus +&2 (89bits88*h-).
/nálisis "structural imulaciones de mecánica de fluidos *odelos genómicos +redicción meteorológica
P el estudio de cualquier fenómeno que pueda ser modelado matemáticamente.
4.4.4 &onsideraciones sobre el rendimiento de los clusters
"l tamaño del problema por resolver "l precio de la máquina necesaria para resolverlo.
+or medio de un cluster se pueden conseguir capacidades de cálculo superiores a las de un ordenador más caro que el costo conjunto de los ordenadores del cluster. "jemplo de clusters barat%simos son los que se están reali-ando en algunas universidades con computadoras personales desechados por anticuados que consiguen competir en capacidad de cálculo con superordenadores car%simos. +ara garanti-ar esta capacidad de cálculo, los problemas necesitan ser paraleli-ables, a que el m#todo con el que los clusters agili-an el procesamiento es dividir el problema en problemas más pequeños calcularlos en los nodos, por lo tanto, si el problema no cumple con esta caracter%stica, no puede utili-arse el cluster para su cálculo. +ara que un problema sea paraleli-able se debe hacer uso de bibliotecas especiales como lo es +1* (parallel virtual machine) o *+2 (*essage passage interface), donde la primera es usada especialmente en cluster con nodos hetereog#neos (arquitectura del procesador, sistemas operativo, entre otras), pertenecientes a diferentes dominios de red, la segunda biblioteca usada para cluster homog#neos