arqui final

Upload: gaby-alvarez

Post on 13-Oct-2015

31 views

Category:

Documents


0 download

TRANSCRIPT

ING. INFORMTICA

FAC. CC. FF. MM. ING. INFORMTICA

PROCESAMIENTO PARALELO

1. PARALELISMO

Elparalelismoes una forma decomputacinen 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. El paralelismo ha sido empleado durante muchos aos, sobre todo para laComputacin de alto rendimiento.El paralelismo adopta dos formas generales: paralelismo en el nivel de instrucciones y paralelismo en el nivel de procesador. En el primero, se aprovecha el paralelismo dentro de las instrucciones individuales para lograr que la mquina ejecute ms instrucciones por segundo. En el segundo, mltiples CPU trabajan juntas en el mismo problema.

1.1. FUENTES DE PARALELISMO

1.1.1. PARALELISMO DE CONTROL

La explotacin del paralelismo de control proviene de la constatacin natural de que en una aplicacin existen acciones que podemos hacer al mismo tiempo. Las acciones, llamadas tambin tareas o procesos pueden ejecutarse de manera ms o menos independiente sobre unos recursos de clculo llamados tambin procesadores elementales (o PE). La gura muestra el concepto que subyace tras el paralelismo de control.

1.1.2. PARALELISMO DE DATOS

En el caso de que todas las acciones sean independientes es suciente asociar un recurso de clculo a cada una de ellas para obtener una ganancia en tiempo de ejecucin que sera lineal: N acciones independientes se ejecutarn N veces ms rpido sobre NElementos de Proceso (PE) que sobre uno solo. Este es el caso ideal, pero las acciones de un programa real suelen presentar dependencias entre ellas. Distinguiremos dos clases de dependencias que suponen una sobrecarga de trabajo: Dependencia de control de secuencia: corresponde a la secuenciacin en un algoritmo clsico. Dependencia de control de comunicacin: una accin enva informaciones a otra accin.La explotacin del paralelismo de control consiste en administrar las dependencias entre las acciones de un programa para obtener as una asignacin de recursos de clculo lo ms ecaz posible, minimizando estas dependencias. La gura siguiente muestra un ejemplo de paralelismo de control aplicado a la ejecucin simultnea de instrucciones.

1.1.3. PARALELISMO DE FLUJO

La explotacin del paralelismo de datos proviene de la constatacin natural de que ciertas aplicaciones trabajan con estructuras de datos muy regulares (vectores, matrices) repitiendo una misma accin sobre cada elemento de la estructura. Los recursos de clculo se asocian entonces a los datos. A menudo existe un gran nmero (millares o incluso millones) de datos idnticos. Si el nmero de PE es inferior al de datos, estos se reparten en los PE disponibles. Como las acciones efectuadas en paralelo sobre los PE son idnticas, es posible centralizar el control. Siendo los datos similares, la accin a repetir tomar el mismo.

1.2. PARALELISMO EN NIVEL DE INSTRUCCIONES:

1.2.1. FILAS DE PROCESAMIENTO (PIPELINE):

Divide la ejecucin de instrucciones en muchas partes, cada una de las cuales se maneja con un componente de hardware dedicado, y todos estos componentes pueden operar en paralelo.

S1S2S3S4S5

El uso de filas de procesamiento permite balancear la latencia (el tiempo que tarda en ejecutarse una instruccin) y el ancho de banda del procesador (cuntas MIPS puede ejecutar la CPU). Con un tiempo de ciclo de T ns y N etapas en fila de procesamiento, esta latencia es de N.T ns y el ancho de banda es de 1000/T MIPS.

1.2.2. ARQUITECTURAS SUPERESCALARES:

Si una fila de procesamiento es buena, entonces seguramente dos sern mejores. Esto requiere que las instrucciones no compitan por el uso de recursos (por ejemplo, registros) y tambin que una no dependa del resultado de la otra. Al igual que con una sola fila de procesamiento, el compilador debe garantizar que se cumpla esta situacin (lo que implica que el hardware no verifica que las instrucciones sean compatibles, y produce resultados incorrectos si no lo son), o bien los conflictos se detectan y eliminan durante la ejecucin utilizando hardware adicional.

Aunque las filas de procesamiento, sean sencillas o dobles, se usan principalmente en las mquinas RISC (el 386 y sus predecesores no los tenan), a partir del 486 Intel comenz a introducir filas de procesamiento en su CPU. El 486 tena una fila de procesamiento y el Pentium tena dos filas de procesamiento de cinco etapas ms o menos, aunque la divisin exacta del trabajo entre las etapas 2 y 3 (llamadas decodificar-1 y decodificar -2) era un poco diferente de nuestro ejemplo. La fila del procesamiento principal, llamada fila de procesamiento u, poda ejecutar una instruccin Pentium arbitraria. La segunda fila de procesamiento llamada fila de procesamiento v, solo poda ejecutar instrucciones enteras simples (y una instruccin de punto flotante sencilla FXCH).

Unas reglas complejas determinaban si un par de instrucciones eran compatibles y podan ejecutarse en paralelo. Si las instrucciones de un par no eran suficientemente simples o eran incompatibles, solo se ejecutaba la primera (en la fila de procesamiento u). La segunda se retena y se apareaba con la siguiente instruccin. Las instrucciones siempre se ejecutaban en orden. As, compiladores especficos para Pentium que producan pares compatibles podan generar programas de ms rpida ejecucin que los compiladores ms antiguos. Mediciones efectuadas revelaron que un Pentium que ejecutaba cdigo optimado para l era exactamente dos veces ms rpido con programas de manipulacin de enteros que un 486 que operaba con la misma rapidez de reloj (Pountain, 1993). Esta ganancia poda atribuirse totalmente a la segunda fila de procesamiento.Es concebible usar cuatro filas de procesamiento, pero ello implica duplicar demasiado hardware (los computlogos, a diferencia de los especialistas en el folklore, no creen en el nmero tres). En vez de ello en la CPU de extremo superior se sigue una estrategia distinta. La idea bsica es tener una sola fila de procesamiento, pero proporcionarle varias unidades funcionales. Se acu el trmino arquitectura superescalar en 1997 para describir este enfoque (Agerwala y Cocke, 1987). Sin embargo, sus races se remontan a hace ms de 30 aos con la computadora CDC 6600. Las 6600 obtena una instruccin cada 100 ns y la transferencia a una de 10 unidades funcionales para su ejecucin en paralelo mientras la CPU iba en busca de la siguiente instruccin.

1.3. PARALELISMO EN EL NIVEL DE PROCESADOR

La demanda de computadoras ms y ms rpidas parece insaciable. El paralelismo en el nivel de instrucciones ayudan un poco, pero las filas de procesamiento y el funcionamiento superescalar casi nunca ganan ms que un factor de 5 o 10. Para obtener ganancias de 50, 100 o ms, el nico camino es disear computadoras con mltiples CPU, por lo que ahora veremos cmo estn organizadas algunas de ellas.

1.3.1. COMPUTADORAS DE M ATRIZ

Un arreglo de procesadores consiste en un gran nmero de procesadores idnticos que ejecutan la misma secuencia de instrucciones con diferentes conjuntos de datos. El primer arreglo de procesadores del mundo fue la computadora ILLIAC IV de la University of Illinois. El plan original era construir una mquina constituida por cuatro cuadrantes, cada uno de los cuales tenan una cuadrcula 8 x 8 de elementos procesador/memoria. Una sola unidad de control por cuadrante transmita instrucciones que eran ejecutadas simultneamente por todos los procesadores, cada uno de los cuales utilizaba sus propios datos de su propia memoria (que se cargaba durante la fase de inicializacin). Debido a que el presupuesto se excedi en un factor de cuatro, slo lleg a construirse un cuadrante, pero este logr un desempeo de 50 megaflops (millones de operaciones de punto flotante por segundo). Se dice que si se hubiera completado la mquina original y hubiera alcanzado la meta de desempeo fijada originalmente (1 gigaflop), habra duplicado la capacidad de cmputo de todo el mundo.

Cuadrcula 8x8 de Procesador/Memoria

Un procesador vectorial es muy parecido a un arreglo de procesadores. Al igual que ste, el procesador vectorial es muy eficiente al ejecutar una secuencia de operaciones con pares de elementos de datos. Pero a diferencia del arreglo de procesadores, todas las operaciones de suma se efectan en un sol sumador provisto de muchas filas de procesamientos. Tanto los arreglos de procesadores como los procesadores vectoriales trabajan con arreglos de datos. Ambos ejecutan instrucciones individuales. Pero mientras que el arreglo de procesadores lo hace teniendo tantos sumadores como elementos tiene el vector, el procesador vectorial tiene el concepto de registro vectorial, que consiste en un conjunto de registros convencionales que pueden cargarse desde la memoria con una sola instruccin, la cual en realidad los carga de la memoria en serie.

1.3.2. MULTIPROCESADORES

Los elementos de procesamiento de un arreglo de procesadores no son CPU independientes, ya que todos ellos comparten la misma unidad de control. Nuestro primer sistema paralelo constituido por CPU propiamente dichas es el multiprocesador, un sistema con varias CPU que comparten una memoria comn, como un grupo de personas en un saln que comparten un pizarrn comn. Puesto que cada CPU puede leer o escribir en cualquier parte de la memoria, deben coordinarse (en software) para no estorbarse mutuamente.Hay varios posibles esquemas de implementacin. El ms sencillo consiste en tener un solo bus con varias CPU y una memoria conectadas a l. En la figura siguiente se muestra un diagrama de semejante multiprocesador basado en bus. Muchas compaas fabrican este tipo de sistema.

No se necesita mucha imaginacin para darse cuenta de que si existen muchos procesadores rpidos que constantemente estn tratando de acceder a la memoria por el mismo bus, habr conflictos. Los diseadores de multiprocesadores han ideado varios esquemas para reducir esta contencin y mejorar el desempeo. Un diseo que se muestra en la figura anterior, proporciona a cada procesador un poco de memoria local propia, inaccesible para los dems. Esta memoria puede utilizarse para cdigo de programa y datos que no es necesario que se compartan. El acceso a esta memoria privada no usa el bus principal, lo que reduce considerablemente el trfico en el bus. Hay otros posibles esquemas (por ejemplo, uso de cachs).Los multiprocesadores tienes la ventaja, respecto a otros tipos de computadoras paralelas, de que es fcil trabajar con el modelo de programacin de una sola memoria compartida. Por ejemplo, imagine un programa que busque clulas cancerosas en una fotografa de algn tejido tomada a travs de un microscopio. La fotografa digitalizada podra guardarse en la memoria comn, y a cada procesador se le asignara alguna regin de la fotografa para su bsqueda. Puesto que cada procesador tiene acceso a toda la memoria, uno de ellos no tiene problemas para estudiar una clula que comienza en la regin que se le asign pero que rebasa la frontera con la siguiente regin.

1.3.3. MULTICOMPUTADORAS

Aunque los microprocesadores con un nmero reducido de procesadores (64) son relativamente fciles de construir, las dificultades se multiplican de forma sorprendente cuando aumenta el nmero de procesadores. Lo difcil es conectar todos los procesadores en la memoria. Para superar estos problemas, muchos diseadores simplemente han abandonado la idea de tener una memoria compartida y se han limitado a construir sistemas que consisten en un gran nmero de computadoras interconectadas, cada una de las cuales tiene su propia memoria, sin que haya una memoria comn. Estos sistemas se llaman multicomputadoras.

2. ASPECTOS BASICOS DE LA COMPUTACION PARALELA

Lacomputacin paralelaes una forma de cmputo en la que muchasinstruccionesse ejecutan simultneamente,operando sobre el principio de que problemas grandes, a menudo se pueden dividir en unos ms pequeos, que luego son resueltos simultneamente (en paralelo).

Los programas informticos paralelos son ms difciles de escribir que los secuenciales, porque la concurrencia introduce nuevos tipos de errores de software. La comunicacin y sincronizacin entre diferentes sub tareas son algunos de los mayores obstculos para obtener un buen rendimiento del programa paralelo.

3. ARQUITECTURA DE LAS COMPUTADORAS

3.1. COMPUTADORAS SECUENCIALES

Las computadoras secuenciales se basan en la arquitectura de J. Von Neumann. Por las limitaciones que este tiene se han desarrollado algunas estrategias para aumentar el rendimiento. La ms conocida es la segmentacin de instrucciones (pipeline) que consiste en traer a la cola de instrucciones la instruccin siguiente a la que se est ejecutando.Los ordenadores con esta arquitectura constan de cinco partes: launidad aritmtico-lgicaoALU, launidad de control, lamemoria, undispositivo de entrada/saliday elbus de datosque proporciona un medio de transporte de los datos entre las distintas partes.

Un ordenador con esta arquitectura realiza o emula los siguientes pasos secuencialmente:1. Enciende el ordenador y obtiene la siguiente instruccin desde la memoria en ladireccinindicada por elcontador de programay la guarda en elregistro de instruccin.2. Aumenta el contador de programa en la longitud de la instruccin para apuntar a la siguiente.3. Decodifica la instruccin mediante launidad de control. sta se encarga de coordinar el resto de componentes del ordenador para realizar una funcin determinada.4. Se ejecuta la instruccin. sta puede cambiar el valor del contador del programa, permitiendo as operaciones repetitivas. el contador puede cambiar tambin cuando se cumpla una cierta condicin aritmtica, haciendo que el ordenador pueda 'tomar decisiones', que pueden alcanzar cualquier grado de complejidad, mediante la aritmtica y lgica anteriores.

3.2. COMPUTADORAS PARALELAS

3.2.1. TAXONOMIA DE FLYNN

Se han propuesto y construido muchos tipos de computadoras paralelas, por lo que es natural preguntarse si hay alguna forma de clasificarlas dentro de alguna taxonoma. Muchos investigadores lo han intentado, con regular xito (Flynn, 1972; Gajski y Pier, 1985; Treleaven, 1985). Lamentablemente, todava no ha surgido el Carlos Linneo de la computacin en paralelo. El nico esquema que se usa mucho es el de Flynn, pero hasta el de l es, en el mejor de los casos, una aproximacin muy burda.La clasificacin de Flynn se basa en 2 conceptos: flujos de instrucciones y flujos de datos. Un flujo de instrucciones corresponde a un contador de programa, un sistema que tiene n CPU, tiene n contadores de programa, y por tanto n flujos de instrucciones.Un flujo de datos consiste en un conjunto de operandos.Los flujos de instrucciones y de datos son, hasta cierto punto, independientes, por lo que existen cuatro combinaciones.

3.2.1.1. Una instruccin, un dato(SISD) [Single Instruction Single Data] Computador secuencial que no explota el paralelismo en las instrucciones ni en flujos de datos. Ejemplos de arquitecturas SIS son las mquinas con uni-procesador omonoprocesador tradicionales como elPCo los antiguosmainframe.

3.2.1.2. Mltiples instrucciones, un dato(MISD) [Multiple Instruction Single Data]Poco comn debido al hecho de que la efectividad de los mltiples flujos de instrucciones suele precisar de mltiples flujos de datos. Sin embargo, este tipo se usa en situaciones deparalelismo redundante, como por ejemplo en navegacin area, donde se necesitan varios sistemas de respaldo en caso de que uno falle. Tambin se han propuesto algunas arquitecturas tericas que hacen uso de MISD, pero ninguna lleg a producirse en masa.

3.2.1.3. Una instruccin, mltiples datos(SIMD) [Single Instruction Multiple Data] Un computador que explota varios flujos de datos dentro de un nico flujo de instrucciones para realizar operaciones que pueden ser paralelizadas de manera natural. Por ejemplo, un procesador vectorial.

3.2.1.4. Mltiples instrucciones, mltiples datos(MIMD) [Multiple Instruction Multiple Data] Varios procesadores autnomos que ejecutan simultneamente instrucciones diferentes sobre datos diferentes. Los sistemas distribuidos suelen clasificarse como arquitecturas MIMD; bien sea explotando un nico espacio compartido de memoria, o uno distribuido.

3.2.2. ORGANIZACIN DE ESPACIO DE DIRECCIONES DE MEMORIA

El intercambio de informacin entre procesadores depende de los sistemas de almacenamiento que se dispongan. Atendiendo este criterio se obtiene una nueva clasificacin de las arquitecturas paralelas en: Sistemas de memoria compartida o multiprocesadores. Sistema de memoria distribuida o multicomputadores.

4. SISTEMAS DE MEMORIAS COMPARTIDAS: MULTIPROCESADORES

Todos los procesadores acceden a una memoria comn. La comunicacin entre procesadores se hace a travs de la memoria. Se necesitan primitivas de sincronismo para asegurar el intercambio de datos.

MODELOS DE COMPUTADORES DE MEMORIA COMPARTIDA

4.1. UNIFORM MEMORY ACCESS (UMA)

En sistemas con uniform memory access (acceso a memoria uniforme), cada procesador tiene acceso directo a una sola memoria compartida. Todas las ubicaciones de la memoria son equidistantes (en cuanto a tiempos de acceso) a cada procesador. La mayora de los sistemas UMA incorpora cach para eliminar las disputas de la memoria pero este mecanismo no se ve desde las aplicaciones.

4.2. NON UNIFORM MEMORY ACCESS (NUMA)

Sistemas con nonuniform memory access (acceso a memoria no uniforme) tienen una memoria fsica compartida distribuida . Cada particin de esta memoria se ata directamente a un nodo pero se puede acceder a ella por procesadores en otro nodos via la red de interconexin. As, los tiempos de acceso a la memoria difieren dependiendo de si la ubicacin requerida es local al nodo o remota a este. Este nivel de complejidad agregado puede ser escondido del software de aplicacin pero hacer esto lleva a un desempeo sub-ptimo. Para hacer mejor uso del hardware, el programador debe tomar la arquitectura en consideracin. El cache se usa entre procesadores y memoria local as como entre nodos. Mquinas con cach coherente a nivel del hardware se llaman ccNUMA.

4.3. CACHE-ONLY MEMORY ARCHITECTURE (COMA)

Sistemas con cache only memory access (acceso a memoria solo en caches) no tiene memoria compartida fsica, pero el cache solo constituye la memoria de las mquinas. Se provee un solo espacio fsico de direcciones pero los tiempos de acceso varan dependientemente si la ubicacin de la memoria requerida est en el cach local o en uno remoto. El software de aplicacin ignorara la arquitectura del sistema ya que la mquina se comporta en forma muy parecida a una mquina UMA con cach.

5. SISTEMAS DE MEMORIA DISTRIBUIDA: MULTIPROCESADORES

Consisten de mltiples computadores llamados a menudo nodos interconectados por una red de pasaje de mensajes. Cada nodo es un sistema computador autnomo con su procesador, su memoria y a veces perifricos de E/S.La red de pasaje de mensajes provee un mecanismo de comunicacin punto a punto. Todas las memorias locales son privadas y son solo accesibles por el conjunto de procesadores locales del nodo, por esta razn se las denomina maquinas NORMA (no remote memory access) La organizacin puede ser escalable en la medida en que los programas realicen comunicaciones locales.

La red de interconexin de pasaje de mensajes permite a cualquier procesador comunicarse con cualquiera de los procesadores del sistema.

5.1. REDES DE INTERCONEXION ESTATICA

Las redes estticas emplean enlaces directos fijos entre los nodos.Estos enlaces, una vez fabricado el sistema son difciles de cambiar, por lo que la escalabilidad de estas topologas es baja. Las redes estticas pueden utilizarse con eficiencia en los sistemas en que puede predecirse el tipo de trfico de comunicaciones entre sus procesadores.

5.2. CLSTER (RACIMO O GRUPO) EN INFORMTICA.

El trmino se aplica a los conjuntos o conglomerados de computadoras construidos mediante la utilizacin de hardwares comunes y que se compartan como si fuesen una nica computadora.La tecnologa de clsteres ha evolucionado en apoyo de actividades que van desde aplicaciones de supercmputo y software de misiones crticas, servidores web y comercio electrnico, hasta bases de datos de alto rendimiento, entre otros usos.Simplemente, un clster es un grupo de mltiples ordenadoresunidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un nico ordenador, ms potente que los comunes de escritorio.

Un ejemplo de clster en la NASA (EE.UU.)La construccin de los ordenadores del clster es ms fcil y econmica debido a su flexibilidad: pueden tener toda la misma configuracin de hardware y sistema operativo(clster homogneo), diferente rendimiento pero con arquitecturas y sistemas operativos similares (clster semi-homogneo), o tener diferente hardware y sistema operativo (clster heterogneo), lo que hace ms fcil y econmica su construccin.Para que un clster funcione como tal, no basta solo con conectar entre s los ordenadores, sino que es necesario proveer un sistema de manejo del clster, el cual se encargue de interactuar con el usuario y los procesos que corren en l para optimizar el funcionamiento.De un clster se espera que presente combinaciones de los siguientes servicios:5.2.1. Alto rendimiento: Un clster de alto rendimientoes un conjunto de ordenadores que est diseado para dar altas prestaciones en cuanto a capacidad de clculo. Los motivos para utilizar un clsterde alto rendimiento son: El tamao del problema por resolver El precio de la mquina necesaria para resolverlo.

Para garantizar esta capacidad de clculo, los problemas necesitan ser paralelizables, ya que el mtodo con el que los clster agilizan el procesamiento es dividir el problema en problemas ms pequeos y calcularlos en los nodos, por lo tanto, si el problema no cumple con esta caracterstica, no puede utilizarse el clster para su clculo.

5.2.2. Alta disponibilidad:

Un clster de alta disponibilidad es un conjunto de dos o ms mquinas que se caracterizan por mantener una serie de servicios compartidos y por estar constantemente monitorizndose entre s. Podemos dividirlo en dos clases:

5.2.2.1. Alta disponibilidad de infraestructura:

Si se produce un fallo de hardwareen alguna de las mquinas del clster, el softwarede alta disponibilidad es capaz de arrancar automticamente los servicios en cualquiera de las otras mquinas del clster(failover). Y cuando la mquina que ha fallado se recupera, los servicios son nuevamente migrados a la mquina original (failback). Esta capacidad de recuperacin automtica de servicios nos garantiza la alta disponibilidad de los servicios ofrecidos por el cluster, minimizando as la percepcin del fallo por parte de los usuarios.

5.2.2.2. Alta disponibilidad de aplicacin:

Si se produce un fallo del hardware o de las aplicaciones de alguna de las mquinas del clster, el software de alta disponibilidad es capaz de arrancar automticamente los servicios que han fallado en cualquiera de las otras mquinas del clster. Y cuando la mquina que ha fallado se recupera, los servicios son nuevamente migrados a la mquina original. Esta capacidad de recuperacin automtica de servicios nos garantiza la integridad de la informacin, ya que no hay prdida de datos, y adems evita molestias a los usuarios, que no tienen por qu notar que se ha producido un problema.No hay que confundir un clster de alta disponibilidad con un clster de alto rendimiento El segundo es una configuracin de equipos diseado para proporcionar capacidades de clculo mucho mayores que la que proporcionan los equipos individuales, mientras que el primer tipo de clster est diseado para garantizar el funcionamiento ininterrumpido de ciertas aplicaciones.

5.2.3. Alta eficiencia:

Son clsteres cuyo objetivo de diseo es el ejecutar la mayor cantidad de tareas en el menor tiempo posible. Existe independencia de datos entre las tareas individuales. El retardo entre los nodos del clster no es considerado un gran problema.

5.2.4. Componentes de un clster:En general, un clster necesita de varios componentes de software y hardware para poder funcionar:5.2.4.1. NodosPueden ser simples ordenadores, sistemas multiprocesador o estaciones de trabajo (workstations). El clster puede estar conformado por nodos dedicados o por nodos no dedicados.En un clster con nodos dedicados, los nodos no disponen de teclado, ratn ni monitor y su uso est exclusivamente dedicado a realizar tareas relacionadas con el clster. Mientras que, en un clster con nodos no dedicados, los nodos disponen de teclado, ratn y monitor y su uso no est exclusivamente dedicado a realizar tareas relacionadas con el clster, el clster hace uso de los ciclos de reloj que el usuario del computador no est utilizando para realizar sus tareas.

5.2.4.2. Almacenamiento: El almacenamiento puede consistir en una NAS (Network Attached Storage) un dispositivo especfico dedicado al almacenamiento a travs de red , una SAN o almacenamiento interno en el servidor.5.2.4.3. Sistemas operativos:Un sistema operativodebe ser multiproceso y multiusuario. Otras caractersticas deseables son la facilidad de uso y acceso. Un sistema operativo es un programa o conjunto de programas de computadora destinado a permitir una gestin eficaz de sus recursos. LINUX, UNIX, WINDOWS, MAC OS X, etc. conexiones de red middleware? protocolos de comunicacin y servicios aplicaciones ambientes de programacin paralela

5.2.5. Sistemas de clsteres implementados:

5.2.5.1. Beowulf

En 1994, Donald Becker y Thomas Sterling construyeron la primeraBeowulf. Fue construida con 16computadores personales con procesadores IntelDX4 de 200MHz, que estaban conectados a travs de un switch Ethernet. El rendimiento terico era de 3,2GFlops.

5.2.5.2. Google:

Durante el ao 2003, el clster Google lleg a estar conformado por ms de 1,5millones de computadores personales. Una consulta en Google lee en promedio cientos de megabytes y consume algunos billones de ciclos deCPU

BIBLIOGRAFA

1. Andrew S. Tanenbaum.(2000).ORGANIZACION DE COMPUTADORAS, UN ENFOQUE ESTRUCTURADO.Mexico:Prentice Hall. 2. Andrew S. Tanenbaum.(2006).SISTEMAS OPERATIVOS DISTRIBUIDOS.Mxico:Prentice-Hall 3. Roosta, Seyed H. (2000).Parallel processing and parallel algorithms: theory and computation(en ingls). New York, NY [u.a.]: Springer. p.114.4. Gill, S. (abril de 1958)(en ingls).Parallel Programming. 1. Sociedad Britnica de Computacin: The Computer Journal. pp.2-10.5. Shen, John Paul; Mikko H. Lipasti (2004).Modern processor design: fundamentals of superscalar processors(en ingls)(1ra edicin). Dubuque, Iowa: McGraw-Hill. p.561.

LINKOGRAFA

6. http://es.wikipedia.org/wiki/Computaci%C3%B3n_paralela7. http://umatim.blogspot.com/8. http://www.sites.upiicsa.ipn.mx/polilibros/portal/Polilibros/P_terminados/PolilibroFC/Unidad_IV/Unidad%20IV_4.htm9. http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r62976.PDF10. http://publiespe.espe.edu.ec/articulos/sistemas/arquitectura/arquitectura.htm11. http://www.infor.uva.es/~diego/docs/trans-sesion-04-muitic.pdf12. http://www.fing.edu.uy/cluster/grupo/cluster_memoria_compartida.pdf

1