Sei sulla pagina 1di 22

FAC. CC. FF. MM.

ING. INFORMTICA

1

PROCESAMIENTO PARALELO


1. PARALELISMO

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. El paralelismo ha sido empleado durante muchos
aos, sobre todo para la Computacin 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.







FAC. CC. FF. MM.
ING. INFORMTICA

2

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 N
Elementos 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.
FAC. CC. FF. MM.
ING. INFORMTICA

3

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.

S1 S2 S3 S4 S5




FAC. CC. FF. MM.
ING. INFORMTICA

4

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).
FAC. CC. FF. MM.
ING. INFORMTICA

5


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.

FAC. CC. FF. MM.
ING. INFORMTICA

6


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
FAC. CC. FF. MM.
ING. INFORMTICA

7

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.


FAC. CC. FF. MM.
ING. INFORMTICA

8



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
FAC. CC. FF. MM.
ING. INFORMTICA

9

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

La computacin paralela es una forma de cmputo en la que
muchas instrucciones se 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
FAC. CC. FF. MM.
ING. INFORMTICA

10

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: la unidad
aritmtico-lgica o ALU, la unidad de control, la memoria, un dispositivo de
entrada/salida y el bus de datos que 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 la direccin indicada por el contador de programa y la
guarda en el registro de instruccin.
2. Aumenta el contador de programa en la longitud de la instruccin para
apuntar a la siguiente.
3. Decodifica la instruccin mediante la unidad 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.

FAC. CC. FF. MM.
ING. INFORMTICA

11

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
o monoprocesador tradicionales como el PC o los
antiguos mainframe.





FAC. CC. FF. MM.
ING. INFORMTICA

12

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 de paralelismo 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.


FAC. CC. FF. MM.
ING. INFORMTICA

13


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.
FAC. CC. FF. MM.
ING. INFORMTICA

14




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
FAC. CC. FF. MM.
ING. INFORMTICA

15

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
FAC. CC. FF. MM.
ING. INFORMTICA

16

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.

FAC. CC. FF. MM.
ING. INFORMTICA

17

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 ordenadores unidos 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 rendimiento es un conjunto de ordenadores que
est diseado para dar altas prestaciones en cuanto a capacidad de
clculo. Los motivos para utilizar un clster de alto rendimiento son:
FAC. CC. FF. MM.
ING. INFORMTICA

18

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 hardware en alguna de las mquinas
del clster, el software de 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
FAC. CC. FF. MM.
ING. INFORMTICA

19

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. Nodos
Pueden 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.

FAC. CC. FF. MM.
ING. INFORMTICA

20

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 operativo debe 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 primera Beowulf. Fue construida con
16 computadores personales con procesadores
Intel DX4 de 200 MHz, que estaban conectados a
travs de un switch Ethernet. El rendimiento terico era
de 3,2 GFlops.

5.2.5.2. Google:

Durante el ao 2003, el clster Google lleg a estar
conformado por ms de 1,5 millones de computadores
personales. Una consulta en Google lee en promedio
FAC. CC. FF. MM.
ING. INFORMTICA

21

cientos de megabytes y consume algunos billones de
ciclos de CPU


FAC. CC. FF. MM.
ING. INFORMTICA

22

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_paralela
7. http://umatim.blogspot.com/
8. http://www.sites.upiicsa.ipn.mx/polilibros/portal/Polilibros/P_terminados/PolilibroFC/Unida
d_IV/Unidad%20IV_4.htm
9. http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r62976.PDF
10. http://publiespe.espe.edu.ec/articulos/sistemas/arquitectura/arquitectura.htm
11. http://www.infor.uva.es/~diego/docs/trans-sesion-04-muitic.pdf
12. http://www.fing.edu.uy/cluster/grupo/cluster_memoria_compartida.pdf

Potrebbero piacerti anche