You are on page 1of 18

Documentoejecutivo

ARQUITECTURADESISTEMASDEPARALELISMOYDISTRIBUIDOS
_____________________________________________________

Ing.JesusGuillermoTovarRache

AntonioJoseAlvarezEspinoza
ManuelLeonedMolanoSaavedra

Computacinparalelaydistribuida

1.INTRODUCCIN

Prcticamente todo los grandes sistemas informticos son en la actualidad sistemas distribuidos o
paralelos. Un sistema distribuido es un sistema en el que el procesamiento de informacin se distribuye
sobre varias computadoras en vez de estar confinado en una nica mquina. Y un sistema paralelo es
aquel donde se distribuye el procesamiento en unidades de procesamiento dentro de la misma maquina.
Obviamente, la ingeniera de sistemas distribuidos y paralelos tiene mucho en comn con la ingeniera de
cualquier otro software, pero existen cuestiones especficas que deben tenerse en cuenta cuando se
disea este tipo de sistemas. Las arquitecturas que se consideran en cada uno de los dos se deben
acomodaralosescenariosenloscualesestossistemassonnecesarios.

En este documento se van a mostrar distintos ejemplos de arquitecturas que han surgido con el paso del
tiempo para ambos tipos de sistemas mostrando en qu consisten, sus caractersticas ms importantes y
paraqufueronusados.

2.ARQUITECTURADESISTEMASPARALELOS

2.1Concepto

Unsistemaparaleloesaquel,enelcualexistenvariasunidadesdeprocesamientoquetrabajanalmismo
tiempodentrodeunmismocomputadordiseadoparatalesfines.Suobjetivoesrealizartareasde
formaparaleladeformaqueseobtengaunamejorasignificativaeneltiempodeejecucion.

2.2Motivacin

Elrendimientoensoftwareyhardwareestnaltamenteligadosyconelrequerimientodeunaconstante
evolucinenelrendimientoenaplicaciones,elhardwaretienequeavanzaraunritmoaceptablepara
quepuedacumplirconlasdemandasquesehacendesdeaplicacionescadavezmsavanzadas.Una
formadesolucionarestasexigenciasesconelaumentodeprocesadoresqueoperenenlamisma
maquinaparadeestamaneraobtenerelaumentodevelocidadnecesario.

2.2.1Computacioncientifica:Lanecesidaddeusarcomputadorasparalasimulaciondefenomenos
fisicoscomplejoshacreadolanecesidaddeproveercomputadorasmspoderosasquepuedan
resolverlassimulacionespropuestasenuntiempoaceptableycadavezconmayorexactitud.Loque
creaasuvezunamayordemandaderendimiento

Imagen1.Requerimientocomputacionalesderendimiento.

2.2.2Computacincomercial:Almismotiempo,laindustriasehaadaptadoycadavezrequiere
capacidadesdeprocesamientoparalelomsintensivas.Enlosaos60losmultiprocesadoresproveann
lafuncionalidadnecesariaparaalgunasaplicacionesperoamedidaqueaumentelrendimientodelos
procesadoresencuantoacantidaddetransistoresyvelocidaddelreloj,seexpandieronlas
posibilidades.

Imagen2.Mejorasdelafrecuenciaderelojycantidaddetransistoresenunprocesadorenlosltimos
40aos.

2.3Convergenciaenarquitecturasparalelas

Existen distintos tipos de arquitecturas tpicas que se han concebido para una optima computacin
paralela. Pero en los ltimos aos las distintas arquitecturas han tendido a la convergencia de diseos.
Esto es principalmente porque sus diferencias estaban enfocadas a cmo la informacin era compartida
enlosdistintosprocesadoresycmoestossecomunicabanentres.

El problema de la comunicacin se hizo evidente cuando se necesitaron crear modelos de programacin


que permiten establecer claridad de cmo deba ser construida una aplicacin paralela y cmo el
hardware deba soportar estos modelos de programacin. Adems de la multiprogramacin, surgieron
otros modelos de programacin que permiten realizar una computacin paralela efectiva. De los cuales
losmsdestacadosson:

Paso de mensajes: En donde una parte del programa enva un mensaje con toda la informacin
necesariaaotrapartedetalprogramaparaqueestaseactiveyejecutesutarea
Memoria compartida: En donde una seccin del programa se comunica con las dems dejando
unespaciocompartidodememoriaalaquelasotraspartesdelprogramapuedanacceder.
Paralelismo de datos: En donde cada parte del programa ejecuta su parte por separado para
que finalmente todas compartan los resultados en un espacio de memoria global en donde la
informacinseaunificada.

Estos modelos deben abstraerse posteriormente de forma en que el hardware usado sea capaz de
mantener la coherencia del modelo y pueda ser usado correctamente. De esta forma es que surgieron
distintos modelos de arquitecturas de hardware paralelos en la que cada una de estas arquitecturas
estaba diseada especficamente para cumplir los modelos de programacin para los cuales fueron
diseadosoriginalmente.

Imagen3.Modelodecomputacinparalela.
2.4Arquitecturasdememoriacompartida

Lasarquitecturasdememoriacompartidatienencmobasequecadaprocesadorposeeunespaciode
memoriacompartidoadicionalasuespacioprivado,medianteelcual,compartenlainformacion
necesariaconlosdemsprocesadoresyconmodulosdeentrada/salidadedatos.Diferentestopologias
decmocompartirlosmodulosdememoriafisicamentehansidoplanteados,entreloscualesestan:

Imagen4:topologiasdeaccesoendistintasarquitecturas

Crossbar Switch: En donde cada uno de los modulos de memoria es accedido por los
procesadores mediante switches arreglados en forma de matriz para que todos tuvieran la
misma capacidad de acceso en cualquier momento hacia las memorias tanto los procesadores,
cmo los modulos de entrada/salida. Su principal problema es que su complejidad se hizo muy
grandedespuesdequeelnumerodeelementoscreciosustancialmente.
Red de interconexion multietapa: En el cual se usan unos switches que redirigen el trafico
desde los procesadores a los modulos de memoria solicitados. Esto traia una latencia mayor y
menoranchodebandaporpuerto
Interconeccion de bus: En donde todos los modulos tienen acceso al mismo bus de datos en
dondeestaconcentradotodoeltrafico,loqueloconvierteenelsistemamsflexibleyusado.

Imagen5.ProcesadorIntelPentiumPro

ElprocesadorIntelPentiumPromuestravariosdeestosconceptosllevadosalarealidad.Estetenia
unacapacidaddehastacuatrounidadesdeprocesamientoconectadasaunbusprincipalquecorriaa
66MHzalcualtambienseconectaelcontroladordememoriaquemanejabalosmodulosdememoria
ylospuertosPCIdeentradaysalidadedatos.

2.5Arquitecturasdepasodemensajes

Imagen6.Arquitecturatipicadepasodemensajes

Las arquitecturas de paso de mensajes usan cmo base computadoras completas para el
procesamiento paralelo, lo que incluye un procesador, memoria y entrada/salida de datos en cada una
de las unidades. La diferencia ms importante con las arquitecturas de memoria compartida, es que la
comunicacion no se realizaba a traves de las memorias, sino usando los modulos de entrada/salida. Esto
hace que la arquitectura tenga similaridades con las arquitecturas de cluster distribuidos aunque con
algunas diferencias fundamentales. La no existencia de un sistema de control que coordine el flujo de
informacion y la restriccion estricta en cuando al diseo de las operaciones de entrada/salida son las
msestrictas.

Las operaciones basicas de esta estructura son entonces enviar y recibir. En donde un procesador envia
los mensajes con una etiqueta a la que se identifica su destinatario junto a la informacion necesaria. Los
procesadores que reciben el mensaje estan en espera de que llegue un mensaje con el identificador
validos para activarse, y realizar las operaciones correspondientes sobre la informacion recibida. Lo
quehacealosprogramasparalelosdepasodemensajesbastanteestructurados.

La informacion es transmitida a traves de canales FIFO que hacen que se contribuya a la parte
estructuradadelosalgoritmosusados.

Imagen7:SupercomputadoraIBMSP2

La supercomputadora IBM SP2 tiene un modelo escalable usando estaciones RS6000 cmo base.
Estan conectados a traves de sus modulos de entrada/salida. Los mensajes se pasaban usando enlaces
configuradosenunatopologiatipomariposa.

Imagen8IntelParagon

LassupercomputadorasIntelParagonusabancmobaseunaestructuradegrilla3Dparaacomodar
susnodosdeprocesamientoendondelacomunicacionsedabaporcanalesdevelocidadeshasta175
MB/s

2.6Arquitecturasdeprocesamientoparalelodedatos

Esta arquitectura se fundamenta en que cada operacion es procesada en paralelo sobre cada elemento
de una estructura regular. Estos se ubican tipicamente dentro de una categoria de la taxonomia de Flynn
conocida cmo SIMD (Single Instruction Multiple Data) en donde se ejecuta la misma instruccion en
distintos bloques de datos. Una unidad de control se asegura que cada unidad de procesamiento se
dirija hacia su bloque de memoria correspondiente para guardarlo en memoria local o bien usando el
espacioglobaldememoria.

2.7Arquitecturadeflujodedatos

Fue una arquitectura experimental que usaba un paradigma totalmente distinto a la arquitectura de Von
Neumann. Consistia en representar un programa cmo un grafo y buscaba que no se ejecutaban las
tareas secuencialmente, sino que cada unidad de procesamiento realizaba su operacion programada en
el momento en que tuviera toda la informacion necesaria. Por lo que existia un flujo de informacion
(tokens)entrelosprocesadoresyhacequelasincronizacionseamsexplicitaelementoporelemento.

2.8Arquitecturasistlica

Fundamentado en el us de elementos de procesamiento sencillos en donde los datos eran


cuidadosamente pensados para fluir en estos elementos se obtenia un alto throughtput con un ancho de
banda moderado. Con el proposito de proveer chips de bajo costo los datos fluian entre las unidades
de procesamiento en pulsos y cada procesador realizaba una operacion requerida sobre los datos
recibidos teniendo similaridades con otros modelos pero solo siendo oportuno en problemas
especializados.

Imagen9iWARP

El iWarp fue la unica implementacin exitosa de esta arquitectura aunque solo fue experimental. Cada
procesador de 32bit ejecutaba una instruccion por ciclo y enviaba su resultado al siguiente procesador
en donde la informacion fluye hasta que el algoritmo sea completado y enviado a otro procesador para
enviaralcanaldesalida.

3.ARQUITECTURADESISTEMASDISTRIBUIDOS
3.1Concepto

Un sistema distribuido es aquel, en el que el procesamiento de informacin se distribuye sobre varios


computadores fsicos diferentes, en vez de estar confinado y dirigido hacia una nica mquina fsica.
Prcticamentetodolosgrandessistemasinformticossonenlaactualidadsistemasdistribuidos.

3.2Ventajas

Existen5grandesventajasqueofrecenlossistemasimplementadosdemaneradistribuida.Estason:

Distribucin de recursos. Un sistema ejecutado sobre una arquitectura distribuida, permite


compartir recursos hardware y software como discos, impresoras, ficheros y compiladores,
queseasocianconcomputadoresdeunared.
Apertura. Los sistemas distribuidos son normalmente sistemas abiertos, lo que significa que se
disean sobre protocolos estndar que permiten combinar equipamiento y software de
diferentes vendedores. A pesar de ello se necesitan herramientas que faciliten los procesos
internosdelsistema,talescomolosmiddleware.
Concurrencia. En un sistema distribuido, varios procesos pueden operar al mismo tiempo
sobre diferentes computadores de la red. Estos procesos pueden comunicarse con otros
durantesufuncionamientonormal.
Escalabilidad. Los sistemas distribuidos, en teora, son escalables en tanto que la capacidad
del sistema puede incrementarse aadiendo nuevos recursos para cubrir nuevas demandas
sobre el sistema. En la prctica, la red que una los computadores individuales del sistema puede
limitar la escalabilidad del sistema. Si se aaden muchos computadores, entonces la capacidad
delaredpuederesultarafectada.
Tolerancia a fallos. La disponibilidad de varios computadores y el potencial para reproducir
informacin, significa que los sistemas distribuidos pueden ser tolerantes a algunos fallos de
funcionamiento del hardware y del software. En la mayora de los sistemas distribuidos, se
puede proporcionar un servicio degradado cuando ocurren fallos de funcionamiento y una
completa prdida de servicio slo ocurre cuando existe un fallo de funcionamiento en la red en
general.

3.3Desventajas

Cuando existen sistemas distribuidos, existen una serie de desventajas respecto a sistemas que se
ejecutan sobre un nico procesador o un cluster de procesadores. Sobre ese supuesto, los sistemas
distribuidostienendesventajastalescomo:

Complejidad. Los sistemas distribuidos son ms complejos que los sistemas centralizados.
Esto hace ms difcil comprender sus propiedades emergentes y probar estos sistemas. Por
ejemplo, en vez de que el rendimiento del sistema dependa de la velocidad de ejecucin de un
procesador, depende del ancho de banda y de la velocidad de los procesadores de la red.
Mover los recursos de una parte del sistema a otra puede afectar de forma radical al
rendimientodelsistema.
Seguridad. Puede accederse al sistema desde varios computadores diferentes, y el trfico en la
red puede estar sujeto a escuchas e interceptaciones indeseadas. Esto hace ms difcil el
asegurar que la integridad de los datos en el sistema se mantenga y que los servicios del sistema
nosedegradenporasuntostalescomounataquededenegacindeservicio.
Manejo. En un sistema, los computadores asociados pueden ser de diferentes tipos y pueden
ejecutar versiones diferentes de sistemas operativos. Los defectos en una mquina pueden
propagarse a otras mquinas con consecuencias inesperadas. Esto significa que se requiere ms
esfuerzoparagestionarymantenerelfuncionamientodelsistema.
Impredecibilidad. Los sistemas distribuidos tienen una respuesta impredecible esto se da
porque la respuesta depende de la carga total en el sistema, de su organizacin y de la carga de
la red. Dad que el estado de todos estos elementos pueden cambiar con mucha rapidez, el
tiempo requerido para responder a una peticin de usuario puede variar drsticamente de una
peticinaotra.

3.4Arquitecturasclienteservidordecomputacindistribuida

Para proporcionar caractersticas deseables a los sistemas distribuidos, reducir la ocurrencia de eventos
que puedan llevar a problemas de funcionamiento, potenciar ventajas y reducir perjuicios de esta clase
de sistemas, se tienen unos tipos genricos de sistemas distribuidos. El primero de ellos es el de
arquitecturadeclienteservidor.
En este tipo de arquitectura, el sistema puede ser visto como un conjunto de servicio que se
proporcionan a los clientes que hacen uso de dichos servicios. Los servidores y los clientes se tratan de
formadiferenteenestossistemas.
En general , los clientes actan como iniciadores de una peticin de datos y los servidores actan como
proveedoresdeestos.

3.4.1Arquitecturaclienteservidor

Las aplicaciones son entendidas como servicios que son ofrecidos por un servidor. Para esta
configuracin, los clientes conocen el servidor pero el servidor no necesariamente conoce a los
clientes. Finalmente ambos, clientes y servidores, son analizados como procesos lgicos dentro de un
sistema.

Imagen4.Esquemadelaarquitecturaclienteservidor.

Un modelo avanzado de arquitectura cliente servidor, planta la organizacin por capas, para el
manejo.Estascapaspuedenrelacionarsedealgunadeestasdosmaneras:

Thin clients (Clientes ligeros). En esta configuracin, El servidor se encarga de procesar y


manejar los datos. Se usa para migrar sistemas heredados a arquitecturas cliente servidor.
Esteubicatodacargadeprocesamientoenelservidorylared.
Fat clients (Clientes pesados). En este estilo de configuracin, el servidor solo se encarga de
manejar los datos es el cliente el que implementa la lgica de la aplicacin a ejecutar. Es por
ello que se dice que existe una alta carga de procesamiento delegada al cliente, con un
consecuente manejo complejo de la red, dado que a mayor cantidad de clientes es ms difcil
controlarelversionamientoycorrectofuncionamientodelaaplicacin.

Imagen5.ModelodeThinclientsyFatclients.

3.4.2Arquitecturadeaplicacinporcapas

Entrminosgenerales,elprocesoqueseejecutaenunapeticindelclientealservidoresfiltradospor3
capasdistintasdeaplicacinqueseejecutanenservidoresfisicosologicos.Estoconelfindefacilitarla
gestinderecursos.

Imagen6.Arquitecturaporcapas.

3.4.3Arquitecturadetrescapas

La informacin es procesada en 3 niveles o capas distintas, para facilitar el manejo de la misma. Las
capasdeestaarquitecturason:

Capa de presentacin est relacionada con la presentacin de la informacin al usuario y con


todalainteraccinconl.
Capa de procesamiento de la aplicacin est relacionada con la implementacin de la lgica
delaaplicacin.
Capadegestindedatosestrelacionadacontodaslasoperacionessobrelabasededatos.

En los sistemas centralizados, estas capas no es necesario que estn claramente separadas. Sin
embargo, cuando se est diseando un sistema distribuido, deberan hacerse una clara distincin entre
ellas,deformaqueseaposibledistribuircadacapasobreunacomputadoradiferente.

Imagen7.Arquitecturade3capas.

3.5Arquitecturasdeobjetosdistribuidosencomputacindistribuida

En esta configuracin de sistemas paralelos, no hay distincin entre servidores y clientes, y el sistema
puede ser visto como un conjunto de objetos que interaccionan y cuya localizacin es irrelevante. No
haydistincinentreunproveedordeserviciosyelusuariodeestosservicios.

3.5.1Arquitecturapeertopeer

En este modelo de computacin distribuida, todos los nodos tienen el mismo rol y funcionalidad por
tanto no existen los cuellos de botella ni los puntos crticos de fallo. Todos los recursos de todas las
mquinas son aprovechados de igual manera, dada la topologa del sistema. Dentro de sus
caractersticasmsnotablessepuedenenunciarlassiguientes:

Volatilidad:NodosentranysalendelSDvariabilidadenconectividad
Capacidaddeautogestinsinunaautoridadglobalcentralizada
Dedicadosacompartirrecursos(contenidos,UCP,almacn,...)
Colaboracinycomunicacinentreusuarios
Usoderedsuperpuesta(overlay):Redlgicasobrelafsica
Nodosdeprocesocomonodosdered
Esquemasdeencaminamientoylocalizacinderecursos
Difciladministracinymayoresproblemasdeseguridad

Imagen8.Esquemadearquitecturapeertopeer.

Imagen9.Esquemadearquitecturapeertopeer.

3.6Middleware

Los componentes en un sistema distribuido pueden implementarse en diferentes lenguajes de


programacin y pueden ejecutarse en tipos de procesadores completamente diferentes. Los modelos
de datos, la representacin de la informacin y los protocolos de comunicacin pueden ser todos
diferentes. Un sistema distribuido, por lo tanto, requiere software que pueda gestionar estas partes
distintas, y asegurar que dichas partes se puedan comunicar e intercambiar datos. El trmino
middleware se usa par hacer referencia a ese software se sita en medio de los diferentes componentes
distribuidosdelsistema.

El middleware es un software de propsito general que normalmente se compra como un componente


comercial ms que escribirse especialmente por los desarrolladores de la aplicacin. Ejemplos de
middleware son software para gestionar comunicaciones con bases de datos, administradores de
transacciones,convertidoresdedatosycontroladoresdecomunicacin.

Los sistemas distribuidos se desarrollan normalmente utilizando una aproximacin orientada a objetos.
Estos sistemas estn formados por partes independientes pobremente integradas, cada una de las
cuales pueden interaccionar directamente con los usuario o con otras partes del sistema. Algunas partes
del sistema pueden tener que responder a eventos independientes. Los objetos software reflejan estas
caractersticasporlotanto,sonabstraccionesnaturalesparaloscomponentesdesistemasdistribuidos.

4.CONCLUSIONES

Un sistema distribuido es un sistema en el que el procesamiento de informacin se distribuye


sobrevariascomputadorasenvezdeestarconfinadoenunanicamquina.
Prcticamentetodolosgrandessistemasinformticossonenlaactualidadsistemasdistribuidos.
Los sistemas distribuidos han reemplazado ampliamente a los sistemas heredados centralizados
que fueron desarrollados en los aos 80 y 90. Sin embargo, comparados con sistemas que se
ejecutan sobre un nico procesador o un cluster de procesadores, los sistemas distribuidos
tienenvariasdesventajas.
Los componentes en un sistema distribuido pueden implementarse en diferentes lenguajes de
programacin y pueden ejecutarse en tipos de procesadores completamente diferentes. Los
modelos de datos, la representacin de la informacin y los protocolos de comunicacin
puedensertodosdiferentes.
Un sistema distribuido requiere software que pueda gestionar estas partes distintas, y asegurar
que dichas partes se puedan comunicar e intercambiar datos. Este software es conocido como
Middleware,ysesitaenmediodelosdiferentescomponentesdistribuidosdelsistema

5.BIBLIOGRAFA
ConnecticutcentralUniversity.Distributedsystems:
0http://www.cs.ccsu.edu/~stan/classes/CS530/Slides/SE12.pdf
ParallelandDistributedComputation:NumericalMethods.DimitriP.BertsekasandJohnN.
Tsitsiklis.PrenticeHall.1989:http://web.mit.edu/dimitrib/www/pdc.html
IBM.Whatisdistributedcomputing:
http://publib.boulder.ibm.com/infocenter/txformp/v6r0m0/index.jsp?topic=%2Fcom.ibm.cics.te.
doc%2Ferziaz0015.htm
MSDN.MIcrosoft.Distributed
Computing:http://msdn.microsoft.com/enus/library/dd129906.aspx
SoftwareEngineering.7thEdition.IanSommerville.Chapter12.Architectureofdistributed
systems.ISBN13:9780321210265
ParallelComputerArchitecture:Ahardwaresoftwareaproach.DavidCuller
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.101.4418&rep=rep1&type=pdf
CS61AStructureandinterpretationofcomputerprograms.Berkeley
http://wla.berkeley.edu/~cs61a/fa11/lectures/communication.html
ParallelComputing:Models,Languages,andArchitectures.BostonUniversity
http://cswww.bu.edu/faculty/best/crs/cs551/lectures/Menu.html